Laravel 5.4:使用 eloquent 和可填充字段更新具有多个 table 的多个模型
Laravel 5.4: Using eloquent and fillable field to update multiple model with multiple table
我有两个模型 Driver
和 DriverCar
我需要按模型显示字段值让我向您展示我的表单代码 header
请注意 Driver
通过 driver_id
与 DriverCar
相关
{!! 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);
}
我有两个模型 Driver
和 DriverCar
我需要按模型显示字段值让我向您展示我的表单代码 header
请注意 Driver
通过 driver_id
DriverCar
相关
{!! 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);
}