生成3条记录或不生成Laravel Controller

问题描述 投票:0回答:1

我在一个表单的控制器中有一个store()的问题,我在同一个控制器中生成了3条记录,但是如果最后一个失败是因为我错过了表单中的某个字段,如果他们注册但是我想要所有或者没有保存

 $company = new Companies;
    $company->companyName= $request->input('RazónSocial');
    $company->rfc= $request->input('rfc');
    $company->contact= "1";
    $company->street= $request->input('Calle');
    $company->extNum= $request->input('NúmeroExterior');
    $company->intNum= $request->input('NúmeroInterior');
    $company->postalCode= $request->input('CódigoPostal');
    $company->suburb= $request->input('Colonia');
    $company->city= $request->input('Ciudad');
    $company->region= $request->input('Municipio');
    $company->state= $request->input('Estado');
    $company->country= $request->input('País');
    $company->telephone= $request->input('Teléfono');
    $company->email= $request->input('Correo');
    $company->save();

    $machine = Machines::find((int)Input::get('machine'));
    $machine->companies_id = $company->id;
    $machine->save();

    $device = Devices::find($machine->device)->first();
    $device->companies_id = $company->id;
    $device->save();

    $user = New User;
    $user->name = $request->input('name');
    $user->email = $request->input('email');
    $user->companies_id = $company->id;
    $user->roles_id = 5;
    $user->avatar = "";
    $user->password = Hash::make($request->input('password'));
    $user->save();

    $company->contact = $user->id;

    if($request->Contacto == true){
        $this->validate($request,[
            'contactName' => 'required|string|max:255',
            'contactEmail' => 'required|string|email|max:255|unique:users',
            'contactPassword' => 'required|string|min:6|confirmed',
        ]);
        $contact = New User;
        $contact->name = $request->input('contactName');
        $contact->email = $request->input('contactEmail');
        $contact->companies_id = $company->id;
        $contact->roles_id = 4;
        $contact->avatar = "";
        $contact->password = Hash::make($request->input('contactPassword'));
        $contact->save();

        $company->contact = $contact->id;
    }
laravel eloquent laravel-controller
1个回答
4
投票

那是transactions。如果未正确完成该功能,则不会将更改提交到数据库。

DB::transaction(function () {

    // Database queries

});
© www.soinside.com 2019 - 2024. All rights reserved.