不去更新配置文件方法(错误试图获得非对象的属性)(Laravel 5.3)


Not Going in update profile method (error Trying to get property of non-object )(Laravel 5.3)

我在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