Какой правильный способ создания формы обрабатывает действие редактирования? - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь отправить некоторые из формы для редактирования.

Я пытался использовать разные способы для достижения этого результата. Ни один из них не работал.

<form method= "GET" action="{{route('edit', $contact->id)}}" name="edit">
                ...etc
 <button type="submit" class="btn btn-primary">Submit</button>
</form>

и

<form method= "GET" action="/{{$contact->id}}/edit" name="edit">
                ...etc
 <button type="submit" class="btn btn-primary">Submit</button>
</form>

Я использую стандартную маршрутизацию:

Route::resource('/', 'ContactController');

Создает URL, заканчивающийся вопросительными знаками (следствие использования GET), но даже если я вручную удаляю его из URL, он все равно не работает и показывает страницу 404. Что с этим не так? Какой правильный способ сделать это?

Редактировать: Route list

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Первый аргумент для Route::resource - это имя ресурса, который также является частью пути:

Route::resource('contact', 'ContactController');

Затем вы можете использовать свой помощник по маршруту:

<form method="POST" action="{{ route('contact.update', ['contact' => $contact->id]) }}">
@method('PUT')

Маршрут 'edit' показывает, что форма редактирования не обрабатывается. Маршрут обновления предназначен для выполнения обновления, где форма редактирования отправляет сообщения.

0 голосов
/ 06 ноября 2019

Следующая команда создаст маршрут на основе ваших определений маршрута web.php

{{ action('ContactController@edit', $contact)}}

Так что просто добавьте это в объявление формы

<form method= "POST" action="{{ action('ContactController@edit', $contact)}}" name="edit">
@method('PATCH')

Обратите внимание, что я изменил метод публикации и добавил помощник вида @method, чтобы создать скрытое поле с правильным методом для использования. Вы не можете использовать маршрут get для обновления модели, если вы не определили этот маршрут вручную, но я бы не рекомендовал его придерживаться правильных глаголов REST. Вам также необходимо использовать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...