如何在 Laravel 5.4 中完成更新

How is update done in Laravel 5.4

我仍在学习 Laravel 并且我正在使用 5.4 版。我目前正在尝试执行更新并希望使用 dd 查看请求的内容,但我被重定向到视图页面(奇怪)。我比较了文档,我似乎做对了。下面是我提交更新表单

时捕获的url
http://127.0.0.1:8000/tasks/2?_token=gX4bBZoZ0bpMgeQ5uIbLNrIegohvAOUJmPTNjbX0&_method=PUT&employee_id=Harry+Ovie&title=update&description=Testing+task&priority=high&begin=2017%2F06%2F02&end=2017%2F06%2F05

这是我的路线列表

Route::get('/tasks', 'TaskController@index');

Route::get('/tasks/create', 'TaskController@create');

Route::post('/tasks', 'TaskController@store');

Route::get('/tasks/{id}', 'TaskController@show');

Route::get('/tasks/{id}/edit', 'TaskController@edit');

Route::put('/tasks/{id}', 'TaskController@update');

这是我的 TaskController 中的更新

public function update(Request $request, $id)
{
    dd($request);
}

这就是我的表单的样子

<form class="form-horizontal" role="form" action='/tasks/{{$task->id}}'>
{{ csrf_field() }}

<input name="_method" type="hidden" value="PUT">

如何修复我的代码?

尝试发布您的表单,现在您正在执行 GET。

<form class="form-horizontal" role="form" method="post" action='/tasks/{{$task->id}}'>

HTML 表单不支持使用 PUT、PATCH 和 DELETE(以及其他一些)。 这就是 Laravel 添加和处理隐藏字段以对 POST 请求执行这些操作的原因。