编辑视图中的我的表单:
<form class="form-horizontal" role="form" method="PUT" action="{{ route('locations.update', $location->id) }}">
{{ csrf_field() }}
// All form Fields ...
</form>
我遇到这种情况:
| GET|HEAD | locations/create | locations.create | App\Http\Controllers\LocationController@create
| PUT|PATCH | locations/{location} | locations.update | App\Http\Controllers\LocationController@update
| GET|HEAD | locations/{location} | locations.show | App\Http\Controllers\LocationController@show
| DELETE | locations/{location} | locations.destroy | App\Http\Controllers\LocationController@destroy
位置控制器中的我的更新方法
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
dd($request);
}
表单提交的结果 dd($ request);结果没有显示出来。
我有什么暗示我在这里做错了吗?
非常感谢!
答案 0 :(得分:3)
网络浏览器不支持PUT
路由,仅支持GET
和POST
。要解决此问题,您可以使用Form Method Spoofing向表单添加隐藏字段。像这样:
<form class="form-horizontal" role="form" method="post" action="{{ route('locations.update', $location->id) }}">
{{ csrf_field() }}
<input type="hidden" name="_method" value="PUT">
// All form Fields ...
</form>