Php 更新用户配置文件时出现问题,因为不支持PUT方法[Laravel]
我正在尝试更新我的用户配置文件,但遇到了以下问题: Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException 此路由不支持PUT方法。支持的方法:GET、HEAD、POST 我已经确定了路线,我不知道为什么会发生这种情况Php 更新用户配置文件时出现问题,因为不支持PUT方法[Laravel],php,laravel,Php,Laravel,我正在尝试更新我的用户配置文件,但遇到了以下问题: Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException 此路由不支持PUT方法。支持的方法:GET、HEAD、POST 我已经确定了路线,我不知道为什么会发生这种情况 web.php Route::get('/user/{id}',[UserController::class,'show'])->name('user.profile'); Route::ge
web.php
Route::get('/user/{id}',[UserController::class,'show'])->name('user.profile');
Route::get('/edit/user/',[UserController::class,'edit'])->name('user.edit');
Route::post('/edit/user/',[UserController::class,'update'])->name('user.update');
<form class="form-horizontal" action="{{route('user.update',$user->id)}}" method="POST">
@csrf
@method('PUT')
@if(session('success'))
<div class="alert alert-success" role="alert">
{{session('success')}}
</div>
@endif
<div class="card-body">
<div class="form-group row">
<label for="name" class="col-sm-2 col-form-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" value="{{$user->name}}">
</div>
</div>
UserController
public function update(Request $request)
{
$user = User::find(Auth::user()->id);
if ($user){
$validate = null;
if (Auth::user()->email === $request ['email']) {
$validate = $request->validate([
'name' => 'required',
'email' => 'required',
'phone' => 'required',
'address' => 'required'
]);
} else {
$validate = $request->validate([
'name' => 'required',
'email' => 'required',
'phone' => 'required',
'address' => 'required'
]);
}
if($validate){
$user->name = $request['name'];
$user->email =$request['email'];
$user->phone = $request['phone'];
$user->address = $request['address'];
$user->save();
$request ->session->flash('success', 'Profile have been updated');
return redirect()->back();
} else{
return redirect()->back();
}
} else {
return redirect()->back();
}
}
edit.blade.php
Route::get('/user/{id}',[UserController::class,'show'])->name('user.profile');
Route::get('/edit/user/',[UserController::class,'edit'])->name('user.edit');
Route::post('/edit/user/',[UserController::class,'update'])->name('user.update');
<form class="form-horizontal" action="{{route('user.update',$user->id)}}" method="POST">
@csrf
@method('PUT')
@if(session('success'))
<div class="alert alert-success" role="alert">
{{session('success')}}
</div>
@endif
<div class="card-body">
<div class="form-group row">
<label for="name" class="col-sm-2 col-form-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" value="{{$user->name}}">
</div>
</div>
@csrf
@方法('PUT')
@if(会话(“成功”)
{{session('success')}
@恩迪夫
名称
从刀片文件中删除@method('PUT')-
<form class="form-horizontal" action="{{route('user.update',$user->id)}}" method="POST">
@csrf
@if(session('success'))
<div class="alert alert-success" role="alert">
{{session('success')}}
</div>
@endif
<div class="card-body">
<div class="form-group row">
<label for="name" class="col-sm-2 col-form-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" value="{{$user->name}}">
</div>
</div>
@csrf
@if(会话(“成功”)
{{session('success')}
@恩迪夫
名称
您没有将其定义为PUT
您将其定义为POST
,因此方法不匹配。。您的表单正在将该方法欺骗为PUT