此路由不支持 GET 方法。支持的方法:POST。拉拉维尔 8

Posted

技术标签:

【中文标题】此路由不支持 GET 方法。支持的方法:POST。拉拉维尔 8【英文标题】:The GET method is not supported for this route. Supported methods: POST. laravel 8 【发布时间】:2021-09-14 07:13:00 【问题描述】:

我是 Laravel 的新手。我正在 Laravel 中制作注册表单。当我使用Route::post() 并在我的控制器中创建此功能时,它给了我错误。

    <form action="route('userregister')" method="post">

    Route::post('/userregister',[Logincontroller::class,'userregister']);

这是我的函数用户注册

    public function userregister(Request $request)
    
        echo 'value posted';
    

【问题讨论】:

发布完整代码,而不是片段。 route('userregister') 是您将 named route 解析为 URL 的方式,但您尚未为路由命名。 userregister 是控制器方法,而不是名称。 只需更改路线,将路线name添加为Route::post('/userregister',[Logincontroller::class,'userregister'])-&gt;name('userregister'); 我已经按照你说的更改了我的路线名称,但仍然显示相同的错误 您需要提供更多信息并进行一些调试。 Route 生成什么 URL?您是否尝试过使用手动编码的路线并查看它是否有效,.env 中的 appurl 设置为什么?您是否为您的网站设置了 www 或 http/s 的重定向 - 所有这些都可能影响您的问题。您需要提供更多信息。 【参考方案1】:

试试下面的代码,

在你的刀片文件中

<form action=" route('user-register') " method="POST">
     @csrf_field() 
</form>

在您的路线文件中 由于 laravel 版本使用不同的语法,请参阅路由文档

Route::post('/userregister',[Logincontroller::class,'userregister'])->name('user-register);

在你的控制器文件中

public function userregister(Request $request)

    var_dump($request);
    exit;

【讨论】:

我试过这段代码,但它不起作用。发生同样的错误 您能否更新您的整个代码,以便我识别

以上是关于此路由不支持 GET 方法。支持的方法:POST。拉拉维尔 8的主要内容,如果未能解决你的问题,请参考以下文章

错误:此路由不支持 POST 方法。支持的方法:GET、HEAD。 - 使用 laravel livewire

此路由不支持 GET 方法。支持的方法:POST。拉拉维尔 8

此路由不支持 POST 方法。支持的方法:GET、HEAD。",...

此路由不支持 PUT 方法。支持的方法:GET、HEAD、POST。在 laravel 中

laravel向我显示此错误此路由不支持POST方法。支持的方法:GET,HEAD,PUT,DELETE

此路由不支持 GET 方法。支持的方法:POST。 laravel 5.8 阿贾克斯