【问题标题】:getting errors The POST method得到错误 POST 方法
【发布时间】:2020-11-21 09:15:56
【问题描述】:

我的编辑页面有问题。当我提交时,我收到此错误:

Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException

此路由不支持 GET 方法。支持的方法: 发布

.

我不知道它来自哪里,因为我对 Laravel 还很陌生。

web.php

Route::post('/admin/add_reseller','ResellerController@addReseller');

控制器.php

  public function addReseller(){
         return view ('admin.resellers.add_reseller');

    }

add_reseller.blade.php

<form class="form-horizontal" method="post" action="" name="addreseller" id="addreseller">
 {{ csrf_field() }}

【问题讨论】:

  • 空操作action=""???

标签: laravel post controller get


【解决方案1】:

提示:

首先,我会使用命名路由,这意味着您将-&gt;name('someName') 添加到您的路由中。这使得路线的使用更容易,如果您认为您的网址不适合您,则无需在使用路线的任何地方更改它。 https://laravel.com/docs/7.x/routing#named-routes

e.g. Route::post('/admin/add_reseller',
'ResellerController@addReseller')->name('admin.reseller');

问题:

我看到的是,您的&lt;form&gt; 中缺少action 属性的值。需要该操作,以便在提交表单时选择正确的路径。

解决方案:

我猜你只需要为属性添加action="{{route('admin.reseller')}}",这样请求就会走上正确的路线。

【讨论】:

  • 我已经尝试过了,也没有工作,我什至清理了缓存,仍然得到同样的错误,任何其他想法!
  • 你也做了optimize:clear,你能展示你完整的web.php文件吗?
  • 是的,我尝试过同样的错误,这里也是 web.php 中的一些代码 Route::post('/admin/add_reseller','ResellerController@addReseller'); Route::get('/admin/view_reseller','ResellerController@viewReseller'); Route::get('/admin/edit_reseller','ResellerController@editReseller') 有趣的是,web.php 中的其余代码与 route::post 一起工作得很好,但这个不是。有什么想法吗?
  • 您是否有一些参数化的路由,例如:/admin/{something} 或 /{something}/add_reseller?
【解决方案2】:
<form class="form-horizontal" method="post" action="" name="addreseller" id="addreseller">

你在form中的action是空的,你需要在那里添加对应的路由。

我建议您使用命名路线。 https://laravel.com/docs/7.x/routing#named-routes

在 web.php 中

Route::post('/admin/add_reseller','ResellerController@addReseller')->name('admin.add.reseller');

然后在您的刀片文件中,您可以使用 route() 函数通过将路由名称作为参数传递来引用路由

<form class="form-horizontal" method="post" action="{{route('admin.add.reseller')}}" name="addreseller" id="addreseller">

【讨论】:

  • 我已经尝试了以上所有方法并且无法正常工作,我遇到了同样的错误。任何其他想法!
  • 您确定表单中的方法是 POST,因为此错误提示其他内容。 The GET method is not supported for this route. Supported methods: POST 这个错误意味着你在一个支持 POST 方法的路由上提交了一个 get 请求。
  • 您可以看到我在上面发布的第一条消息我从编辑器复制了该代码行并将其发布在这里,我拼错了吗?另外请看错误信息的第一行,这是否意味着什么!
  • 这是抛出的异常,消息是我之前向您解释过的。不知何故,正在向支持 POST 的路由发出 GET 请求。我并不是说您在此处粘贴的内容不正确,我只是在向您解释错误,这就是正在发生的事情。您可以尝试在该 html 页面的脚本中添加代码,获取该特定表单,然后列出该表单的操作、方法,以便您可以验证它。这只是您可以进行调试的一种方式。如果您需要任何帮助,请告诉我。
猜你喜欢
  • 2020-05-24
  • 1970-01-01
  • 2018-11-04
  • 2016-03-13
  • 1970-01-01
  • 2018-05-21
  • 2017-09-07
  • 2015-03-08
  • 1970-01-01
相关资源
最近更新 更多