Как указал Лагбокс в комментариях:
Route::post('/posts', ['PostsController@update', $post->id])
Предназначен для определения маршрута в вашем файле маршрутов.Чтобы получить URL, вы можете сделать одно из следующих действий:
Жесткий код URI
action="/posts/{{ $post->id }}"
Используйте url()
помощник
action="{{ url("posts/$post->id") }}"
или action="{{ url("post", $post->id) }}"
Используйте route()
помощник (Это будет работать, только если вы дали маршруту название)
action="{{ route('the-route-name', $post->id) }}"
Используйте помощник действий
action="{{ action('PostsController@update', $post->id) }}"
Вот ссылка различным помощникам URL.Мой главный совет здесь - в основном придерживаться только одного из них для проекта.
Более того, ваш код должен работать абсолютно нормально, как сейчас, но обычно с REST (или способомLaravel использует rest) вы бы сделали запрос на обновление PUT
или PATCH
вместо запроса POST
.Однако стандартные html-формы поддерживают только GET
и POST
, поэтому Laravel предоставляет вам способ подделать метод формы :
<input type="hidden" name="_method" value="PUT" />