我尝试了这两种方法..
第一个:MethodNotAllowedHttpException
Route::post('/settings/{id}/update/', 'HomeController@update');
Route::match(['put','patch'], '/settings/{id}/update/','HomeController@update')
也使用它..
{!! Form::model($user, ['method' => 'patch','action' => ['HomeController@update',$user->id]]) !!}
{!! Form::model($user, ['method' => 'patch','route' => ['user.update',$user->id]]) !!}
请说明如何使用路由更新默认身份验证用户。
答案 0 :(得分:1)
您应该为路线命名:
Route::patch('/settings/{id}/update/', 'HomeController@update')->name('user.update');
或者:
Route::patch('/settings/{id}/update/', ['as' => 'user.update', 'uses' => 'HomeController@update']);
答案 1 :(得分:0)
您的表单方法是补丁,而您的路由方法被列为帖子。 您可以更改路线方法,也可以更改表格中的操作。
答案 2 :(得分:0)
我认为你应该具体说明你想要使用的方法,无论是放入还是补丁,如果我没记错,如果你必须使用补丁方法来引用这篇文章中的答案:Laravel form won't PATCH, only POST - nested RESTfull Controllers, MethodNotAllowedHttpException < / p>
<form method="POST" action="patchlink">
{!! method_field('patch') !!}
. . .
</form>
方法字段是必需的,因为据我所知,Laravel使用此机制来处理补丁请求。
PS:如果我理解正确的话,我刚试图强调的是,应该有一个额外的字段来处理补丁方法。 希望这会有所帮助:)