我正在尝试使用bootstrap模式中的表单更新表格中的现有行。但是当我尝试时没有任何改变。我有一个带有汽车列表的html表,每行都有一个“更改状态”按钮,打开带有id="myModal_{{ $car->id }}"
的引导模式,并在其中包含用于编辑修理汽车状态的表格。
这是我的模态:
<!-- Modal -->
<div class="modal fade" id="myModal_{{ $car->id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Breyta stöðu bíls</h4>
</div>
<div class="modal-body">
<div class="form-group">
<h3>Breyta stöðu fyrir {{ $car->LicencePlate }}</h3>
</div>
{!! Form::open(['url' => 'create']) !!}
<div class="form-group">
{!! Form::label('Status', 'Status: ') !!}
{!! Form::select('Status', [
null => ' -- Veldu Stöðu bíls -- ',
'Í Biðröð' => 'Í Biðröð',
'Í Viðgerð' => 'Í Viðgerð',
'Tilbúinn' => 'Tilbúinn'
], null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
{!! Form::submit('Skrá stöðu', ['class' => 'btn btn-primary']) !!}
</div>
{!! Form::close() !!}
</div>
</div>
</div>
CarController中的更新方法:
public function CarEdit($id, Requests\CreateCarsRequest $request)
{
$edit = Car::update($request->all());
return redirect::back();
}
我对该方法的路线:
Route::post('/dashboard', 'CarController@CarEdit');
答案 0 :(得分:1)
你应该这样做:
['action' => 'CarController@CarEdit']
此外,您使用的是mass assignment
,因此您必须在$fillable
模型中填充Car
数组才能使其正常工作:
https://laravel.com/docs/5.1/eloquent#mass-assignment
答案 1 :(得分:0)
我能够在同事的帮助下解决这个问题。我做的是我创建了一个名为UpdateCarRequest的新requet,其中LicencePlate字段不是唯一的。并编辑了我的方法:
public function CarEdit(Requests\UpdateCarRequest $request)
{
$edit = Car::where('LicencePlate', '=', $request->LicencePlate)->first();
$edit->update($request->all());
return redirect('/dashboard');
}
我还在表单中添加了一个隐藏字段,其值为$car->LicencePlate
。