Laravel: MethodNotAllowedHttpException: метод GET не поддерживается для этого маршрута.Поддерживаемые методы: POST - PullRequest
0 голосов
/ 18 марта 2019

У меня очень странная проблема. У меня есть пост-маршрут, но я получаю сообщение об ошибке Метод GET для этого маршрута не поддерживается.

Это моя функция web.php:

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

Я определенно отправляю запрос по почте. Я уже проверил это: Laravel: метод POST возвращает 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 ]

4 голосов
/ 18 марта 2019

Я считаю, что это может быть просто ошибкой опечатки - вы пропустили кавычку (") после 'post'

view:

<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));
});

РЕДАКТИРОВАТЬ: обновленный код контроллера, вы запрашивали данные из ввода, называемого «текст», но не было никаких входов с именем «текст» ввид, только тип ввода

0 голосов
/ 18 марта 2019

Во-первых, проверьте, правильно ли вы определяете маршрут, или нет 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));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...