已登录用户的配置文件页面 - laravel 5.2

时间:2016-05-06 11:19:53

标签: laravel post get routes profile

问题是,当我提交表单时,浏览器抛出MethodNotAllowedHttpException in RouteCollection.php line 219:

我的路线

Route::group(['middleware' => ['web']], function () {
    Route::resource('dash/reports', 'Dash\\ReportsController');
});

/* ruote for Admin */
Route::group(['middleware' => ['role:admin']], function () {
    Route::resource('dash/categories', 'Dash\\CategoriesController');
});

Route::group(['middleware' => ['role:admin']], function () {
    Route::resource('dash/roles', 'Dash\\RolesController');
});
Route::group(['middleware' => ['role:admin']], function () {
    Route::resource('dash/permissions', 'Dash\\PermissionsController');
});
Route::group(['middleware' => ['role:admin']], function () {
    Route::resource('dash/users', 'Dash\\UsersController');
});

/* another routes */
Route::auth();
Route::get('/profile-edit/{id}', 'Dash\\UsersController@editUser');

我的控制器:

public function editUser($id)
{
    $auth = Auth::user()->id;
    $user = User::findOrFail($id);
    if($auth == $user->id){
        return view('dash.users.update_profile', compact('user'));
    }
    return redirect('errors/404');
}

public function storeUpdatedUser($id, Request $request)
{
    $this->validate($request, ['email' => 'required', 'name' => 'required', 'password' => 'required', 'surname' => 'required', ]);

    $user = User::findOrFail($id);
    $user->update($request->all());
    $user->password = bcrypt($request->password);
    $user->save();

    Session::flash('flash_message', 'User updated!');

    return redirect('/');           
}

观点:

{!! Form::model($user, [
        'method' => 'PATCH',
        'url' => ['/profile-edit', $user->id],
        'class' => 'form-horizontal'
    ]) !!}
........

问题是什么?另一个问题是字段"密码"告诉我一个密码,任何人都可以解释我吗?

https://github.com/OfficeDev/office-js-snippet-explorer/issues/13

3 个答案:

答案 0 :(得分:1)

您正在向获取路线发送PATCH请求:

Route::get('/profile-edit/{id}', 'Dash\\UsersController@editUser');

{!! Form::model($user, [
    'method' => 'PATCH',
    'url' => ['/profile-edit', $user->id],
    'class' => 'form-horizontal'
    ]) !!}

更改从get到patch

的路线
Route::patch('/profile-edit/{id}', 'Dash\\UsersController@editUser');

答案 1 :(得分:1)

尝试使用Route::put('/profile-edit/{id}'...

答案 2 :(得分:0)

解决:

Route::get('/profile-edit/{id}/edit', 'Dash\\UsersController@editUser');
Route::patch('/profile-edit/{id}', 'Dash\\UsersController@storeUpdatedUser');