我正在尝试在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
和顺便说一句,我也尝试过使用带有隐藏输入的补丁路由,但还是同样使用了。
答案 0 :(得分:1)
好,所以发现了问题,我必须将用户编辑路径更改为用户更新,所以
<form method="post" action="{{route('users.edit', $user)}}">
将更改为此
<form method="post" action="{{route('users.update', $user)}}">