Laravel 5.6错误MethodNotAllowedHttpException

时间:2018-10-20 08:09:07

标签: php laravel routes

我正在尝试在laravel中编辑默认的Auth用户,并且在提交编辑表单时收到错误消息 所以这是我的控制器:

class UserController extends Controller
{

public function __construct()

{
    $this->middleware('auth');
}

public function edit(User $user)
{
    $user = Auth::user();
    return view('admin.profile.edit', compact('user'));
}

public function update(User $user)
{
    $this->validate(request(), [
        'name' => 'required',
        'email' => 'required|email|unique:users',
        'password' => 'required|min:6|confirmed'
    ]);

    $user->name = request('name');
    $user->email = request('email');
    $user->password = bcrypt(request('password'));

    $user->save();

    return back();
}
}

这是我的表单格式视图文件

    <form method="post" action="{{route('users.edit', $user)}}">
                    {{ csrf_field() }}
                    {{ method_field('patch') }}
                    <input type="text" name="name"  value="{{ $user->name }}" />

                    <input type="email" name="email"  value="{{ $user->email }}" />

                    <input type="password" name="password" />

                    <input type="password" name="password_confirmation" />

                    <button type="submit">Send</button>
                </form>

所以我90%确信问题所在的重要文件是我的路线,我知道我是如何发送一些信息的,我对此部分确实感到困惑

Route::get('admin/profile/{user}',  ['as' => 'users.edit', 'uses' => 'UserController@edit']);
Route::post('admin/profile/{user}/update',  ['as' => 'users.update', 'uses' => 'UserController@update']);

现在,当我提交表单时,出现此错误

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message

和顺便说一句,我也尝试过使用带有隐藏输入的补丁路由,但还是同样使用了。

1 个答案:

答案 0 :(得分:1)

好,所以发现了问题,我必须将用户编辑路径更改为用户更新,所以

<form method="post" action="{{route('users.edit', $user)}}">

将更改为此

<form method="post" action="{{route('users.update', $user)}}">