【问题标题】:How to fix Update error for The POST method is not supported for this route in Laravel 7如何修复 Laravel 7 中此路由不支持 POST 方法的更新错误
【发布时间】:2020-09-06 14:51:55
【问题描述】:

我是 laravel 的新手,我正在尝试为一个简单的 CRUD 项目创建一个 Todo 应用程序,但我收到一个错误提示

此路由不支持 POST 方法。支持的方法:GET、HEAD、PUT、PATCH、DELETE。

我一直在寻找解决方案并尝试了所有方法,但不知何故该解决方案无法解决我的错误。

web.php

Route::get('/', 'TaskController@index');
Route::resource('task','TaskController');

TaskController

   public function edit(Task $task)
    {
        return view('task.edit')->with('task', $task);
    }

    public function update(Request $request, Task $task)
    {
        $task->update($request->all());
        return redirect('/');
    }

edit.blade.php

 <form action="{{route('task.update', $task->id)}}" method="POST">
        @csrf
        method('PATCH')
        <div class="input-group mb-3 w-100">
            <input type="text" class="form-control form-control-lg" name="title" value="{{$task->title}}" aria-label="Recipient's username" aria-describedby="button-addon2">
            <div class="input-group-append">
                <button class="btn btn-success" type="submit" id="button-addon2">Update</button>
            <div>
        <div>
        </form>

路线列表:

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    更新操作传统上是通过PUTPATCH 调用完成的。表单不支持这一点,但Laravel 支持使用名称_method 进行隐藏输入字段,指示它是否应该是PUT

    你的语法不正确,应该是。

    <form action="{{route('task.update', $task->id)}}" method="POST">
        @csrf
        @method('PATCH')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      • 2021-09-04
      • 1970-01-01
      相关资源
      最近更新 更多