2017-01-16 20 views
0

我的形式在编辑观点:Laravel:在控制器更新方法不工作

<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\[email protected] 
| PUT|PATCH | locations/{location}  | locations.update | App\Http\Controllers\[email protected] 
| GET|HEAD | locations/{location}  | locations.show | App\Http\Controllers\[email protected] 
| DELETE | locations/{location}  | locations.destroy | App\Http\Controllers\[email protected] 

我的位置控制器更新方法

/** 
* 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); 

} 

表格提交结果 enter image description here dd($ request);结果没有显示出来。

任何提示对我来说我在做什么错在这里?

非常感谢!

回答

3

Web浏览器不支持PUT路由,只有GETPOST。要解决这个问题,您可以使用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>