我正在使用 Laravel 5.6 和 MySQL。我将使用以下 Controller 函数更新学生表:
public function update(Request $request, $id)
{
$students = Student::find($id);
$students->name = $request->input('name');
$students->town = $request->input('town');
$students->save();
}
更新表单操作如下所示:
<form action="{{route('student.update',$students->id)}}" method="POST">
{{csrf_field()}}
我的路线定义如下:
Route::resource('student','StudentController');
我的问题是,当我单击表单中的更新按钮时,它会生成以下错误消息
1/1) MethodNotAllowedHttpException
出了什么问题?
最佳答案
您使用了错误的 HTTP 方法,Route::resource
路由上的 update
方法要求使用 PUT/PATCH HTTP 方法发送请求。
由于 HTTP 表单不支持 PUT/PATCH 作为方法,因此您应该通过在表单内使用 Blade 指令 @method('PUT')
来欺骗 HTTP 方法。
<form action="{{route('student.update',$students->id)}}" method="POST">
{{csrf_field()}}
{!! @method('PUT') !!}
</form>
关于php - 发布表单时 Laravel Route 资源不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54034262/