我有这条路线可供编辑和更新
//Designation Details for Staffs
Route::get('designation/{staffid}', array(
'as' => 'designation.edit',
'uses'=>'StaffController@editDesignation'));
Route::patch('designation/update/{staffid}', array(
'as' => 'designation.update',
'uses'=>'StaffController@updateDesignation'));
edit
路由可以正常使用表单模型:
{!! Form::model($designation, [
'method' => 'PATCH',
'route' => ['designation.update', $designation->staffid]
]) !!}
但是,当点击update
的“提交”按钮时,它会显示网址
http://localhost/hrm/public/designation/update/2
并导致404
。只是让你知道,所有其他路线工作正常。对于类似的情况,另一个更新路线:
Route::patch('staff/update/{id}', array(
'as' => 'staff.update',
'uses'=>'StaffController@update'));
工作正常。 TIA。
更新:控制器方法updateDesignation
public function updateDesignation($staffid, Request $request){
/*
** Update for Staff's Designation Information
*/
$designation= Designation::findOrFail($staffid);
$input = $request->all();
//dd($input);
$designation->fill($input)->save();
return view('staff.editdesignation')->with('designation',$designation)->with('staffid',$staffid);
}
答案 0 :(得分:1)
使用可以使用put代替补丁。 Html表单不支持put,patch或delete选项。因此,在表单中添加一个隐藏的_method字段。
答案 1 :(得分:0)
我的查询出错了
$designation= Designation::findOrFail($staffid);
$staffid
不是主键,而是外键。我通过将查询更改为。
$designation = Designation::where('staffid', $staffid)->firstOrFail();