Laravel 5.4:使用eloquent和fillable字段更新多个表的多个模型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel 5.4:使用eloquent和fillable字段更新多个表的多个模型相关的知识,希望对你有一定的参考价值。

我有两个型号DriverDriverCar

我需要通过模型显示字段值让我告诉你我的表单标题代码注意DriverDriverCar有关driver_id

{!! Form::model($driver, [
            'route'=>['drivers.update', $driver],
            'method'=>'PATCH',
            'class'=>'form-horizontal'
            ]) !!}

现在我的表格领域

<div class="form-group">
     {!! Form::label('name', trans('interface.DriverName'), ['class'=>'col-sm-2 control-label']) !!}
     <div class="col-sm-10">
          {!! Form::text('name', null, ['class'=>'form-control', 'placeholder'=>trans('interface.DriverName')]) !!}
     </div>
</div>

我更新时成功更新。但DriverCar字段没有得到fillable值,如果它设置为null我必须得到它像$driver->driverCar->car_model这样的关系

<div class="form-group">
     {!! Form::label('car_model', trans('interface.carModel'), ['class'=>'col-sm-2 control-label']) !!}
     <div class="col-sm-10">
     {!! Form::text('car_model', $driver->driverCar->car_model, ['class'=>'form-control', 'placeholder'=>trans('interface.carModel')]) !!}
     </div>
</div>

是否有任何方法可以得到它fillable而不给它像$driver->driverCar->car_model这样的关系?

第二个是我的控制器我尝试一次更新两个表

public function update( Request $request, Driver $driver, DriverCar $driverCar ) {
        //dd( $driverCar );
        $input = $request->all();
        $driver->fill( $input )->save();

        $driverCar->fill( $input )->save();

        return redirect()->route( 'drivers.edit', $driver );
    }

在控制器中我也无法更新两个表,它只是更新Driver但不接触DriverCar

任何指南请。

答案

您没有将driverCar ID传递给update控制器方法,因此将代码更改为以下内容:

public function update( Request $request, Driver $driver)
{
    $input = $request->all();
    $driver->fill($input)->save();
    $driver->driverCar()->first()->fill($input)->save();
    return redirect()->route('drivers.edit', $driver);
}

以上是关于Laravel 5.4:使用eloquent和fillable字段更新多个表的多个模型的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.4 Eloquent where parent

如何测试 Laravel 5.4 中的“创建”事件是不是调用了 Eloquent 模型方法?

在 Laravel 5.4 (Eloquent ORM) 中自动删除 NESTED 相关行

选择选项不工作laravel 5.4

Laravel 5.4雄辩的一对多关系

Laravel Eloquent 播种机计算每个外键的行数