我在laravel resource controller中写了一个新方法现在试图访问这个方法但它没有到达那里我的表单动作是as
<form action="/user/updateprofile/{{$user->id}}" method="POST" class="form-horizontal">
<input type="hidden" id="action" value="profile">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" id="user-id" value="{{$user->id}}">
<input type="hidden" name="_method" value="PUT">
我已经定义了我的路由为usercontroller
Route::get('user/profile/{id}', ['as' => 'user.profile', 'uses' => 'UserController@profile']);
Route::get('edit/update/{id}', 'UserController@updateprofile');
Route::resource('/user', 'UserController');
控制器中的方法为
public function updateprofile(Request $request, $id)
{
return ('Here');
}
怎么做怎么修复当我点击提交按钮,它应该在updateprofile方法在UserController这里的问题是什么,请帮我修复
需要添加::put
路由:
Route::put('user/updateprofile/{id}', 'UserController@updateprofile');
您必须使用Route::put()
HTML不支持PUT
所以你必须这样做:
<form action="/foo/bar" method="POST">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
和i路由:
Route::put('user/updateprofile/{id}', 'UserController@updateprofile');
您应该在第一行更改['as' => 'user.profile', 'uses' => 'UserController@updateprofile']
,将profile更改为updateprofile,因为您的操作名称是updateprofile