Laravel:MethodNotAllowedHttpException:该路由不支持GET方法。支持的方法:POST

时间:2019-03-18 10:14:38

标签: php laravel post

我有一个很奇怪的问题。我有一条张贴路线,但收到一条错误消息,此路线不支持GET方法。

这是我的web.php函数:

Route::post('/sender',function () {
    $text = request()->text;
    event(new FormSubmitted($text));
});

我肯定是在发送发帖请求。 我已经检查过:Laravel: POST method returns MethodNotAllowedHttpException

但是选择的答案不清楚。

我的查看代码:

<?php echo csrf_field(); ?>

{{ csrf_field() }}



<form action="/sender" method="post>
First name: <input type="text" name="fname"><br>
<input type="hidden" name="_token" value="{{ csrf_token() }}">

<input type="text" name="content"><br>
<input type="submit">

2 个答案:

答案 0 :(得分:3)

我相信这可能只是拼写错误-您在“发布”之后错过了引号(“)

视图:

<form action="/sender" method="post">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    First name: <input type="text" name="fname"><br>
    <input type="text" name="content"><br>
    <input type="submit">
</form>

控制器

Route::post('/sender',function () {
    $name = request->fname;
    $content = request->content
    event(new FormSubmitted($name, $content));
});

编辑:更新了控制器代码,您正在从名为“文本”的输入中请求数据,但是视图中没有任何名为“文本”的输入,只有输入类型为

答案 1 :(得分:0)

首先,检查您是否通过php artisan route:list命令定义了正确的路由

刀片文件

<form action="{{ route('sender') }}" method="post">
@csrf
First name: <input type="text" name="fname"><br>

<input type="text" name="content"><br>
<input type="submit">

路线

Route::post('/sender',function () {
    $text = request()->fname; //access by input field name
    event(new FormSubmitted($text));
})->name('sender');

or

Route::post('/sender', 'UserController@sender')->name('sender');

如果您使用带有控制器的路由,则您的控制器看起来像这样

public function sender(Request $request)
{
    $fname = $request->fname;
    event(new FormSubmitted($fname));
}