php - 发布表单时 Laravel Route 资源不会更新

标签 php laravel-5

我正在使用 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/

相关文章:

git - 考虑到供应商被忽略,如何克隆我自己的 Laravel 项目

php - 如何从 Laravel 5 的内核中删除旧的 artisan 命令

javascript - PHP::使用ajax上传

php - While 循环不显示查询的所有结果

php - 在配置 PHP 以使用 mySQL 时遇到问题

php - 1.3M 查询/小时。您将如何构建查询?

php - Laravel 返回 View 不发送数据,但回显 View 有效

mysql - Laravel 5.1 - DB 正在向我的查询添加反勾号?

php - 如何在 .htaccess 中编写此 404 规则

laravel - 检查 View 中是否定义了某个部分