2017-01-16 19 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>