我有一个很奇怪的问题。我有一条张贴路线,但收到一条错误消息,此路线不支持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">
答案 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));
}