The POST method is not supported for this route

Начал учить laravel, и наткнулся на странную вещь.

Есть вот такой blade шаблон:

<body>
<form action="/posts/store/" method="POST">
    <input type="text" name="name">
    <input type="text" name="text">
    @csrf
    <input type="submit">

</form>
</body>

Route вот такой:

Route::resource('posts', '\App\Http\Controllers\PostController');

Сделал отображение записей, перешёл к добавлению, и тут выпадаю всегда в:

The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, PATCH, DELETE.

Но если смотреть через php artisan route:list, то поддерживается только POST

Метод POST


Ответы (1 шт):

Автор решения: AlexZelenskiy

Вы форму сабмитите по "/posts/store/", а в роуте ясно написано, что для ресурсного контроллера прописан путь "posts". Соответственно решение для вас либо:

  1. Меняете в форме экшн на правильный "/posts":

    form action="/posts"

  2. Не заморачиваетесь с адресами (которые, кстати могут и поменяться), а используете имена (у вас они прописаны в роутах):

    form action="{{ route('posts.store') }}"

→ Ссылка