【问题标题】:Laravel error - post method not allowed on update (with @method('put))Laravel 错误 - 更新时不允许发布方法(使用 @method('put))
【发布时间】:2020-11-27 05:48:57
【问题描述】:

我对 laravel 有一个奇怪的问题。所以点击编辑按钮后会出现这个错误

The POST method is not supported for this route. Supported methods: GET, HEAD.

当我刷新页面时,它只会显示一个应该显示的表单。所以这意味着代码是正确的......对吗?

Edit.Blade:

<form action="{{ route('categories.update', $category->slug) }}" method="post">
    @csrf
    @method('put')

    <div class="form-group">
        <label for="name">Category</label>
        <input type="text" name="name" class="form-control" value="{{ $category->name }}">
    </div>

    <div class="form-group">
        <button type="submit" name="btn-updateCategory" class="btn btn-block btn-success">Update category</button>
    </div>
</form>

我确定这个 $category->slug 部分不是问题.. :)

此外,当我刷新页面并且错误消失时,我的控制器也会完成它的工作(更新类别)。

它也发生在其他项目上,我认为这是我的错,由于我不知道如何解决它并且没有发现代码中有任何错误,所以从头开始那个项目并完成它而没有遇到这个问题。

编辑

这是我的路线:列表 https://prnt.sc/tvjw2i

这是我的 web.php

Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'admin']], function(){
   Route::resource('/posts', 'PostsController');
   Route::resource('/categories', 'CategoriesController');
});

问题已解决: 没有人,包括我,意识到我们正在寻找错误的形式。由于当我尝试进入更新页面而不是更新页面时出现错误,因此 index.blade.php 上的错误而不是 edit.blade.php 上的错误。

【问题讨论】:

  • 嗨 Sead,欢迎来到 SO!您可以在routes/web.php 中发布相关内容吗?另外 - 如果您在项目根目录中运行 php artisan route:list,您是否看到列出的路线?
  • 另外,下定决心。 :D 看来你在routes/web.php 中的路线categories.update 采用GET 方法。您的表单的methodPOST,而另一个@method 指令设置为PUT。因为,你正在更新一些东西,你可能想要PUT;更改web.php 中的路由方法。这就是您从视图中发送PUT 请求的方式 - stackoverflow.com/a/28144127/10625611
  • @Qumber 你好,我也尝试过 PUT,屏幕上出现同样的错误,这是上次尝试留下的:D 我通常使用 PUT
  • @UkraineInTheMembrane 有我的路线列表的图像。我看到所有这些,更新是 PUT|PATCH 你也可以在这里看到prnt.sc/tvjw2i

标签: laravel


【解决方案1】:

这是路由的问题,请向我们展示您的 web.php 文件。 如果您没有将路由注册为资源,那么它应该如下所示

//route for categories update

Route::post(categories/{id}/update,’CategoriesController@update’);

或者如果你正在使用资源控制器

route::resource(‘categories’,CategoriesController’);

请检查一下。

【讨论】:

  • 我已经编辑了我的问题。在那里你可以检查我的 web.php
猜你喜欢
  • 2019-07-29
  • 2020-11-19
  • 2018-08-25
  • 2014-10-04
  • 1970-01-01
  • 2022-02-09
  • 2020-12-13
  • 2016-07-16
  • 1970-01-01
相关资源
最近更新 更多