Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 13.05.2016 11:05:20

battrack

Как вернуть в форму уже заполненные данные при неправильном вводе?

Сразу уточню, что вопрос касается работы без использования хелпера form, т.е. все формы делаю вручную.
Вопрос касается именно обновления уже существующей в базе записи, а не добавления.
Во всех руководствах предлагают такую систему роутов для данной операции:
Route::get('article/{article}/edit', ['as' => 'article.edit', 'uses' => 'ArticleController@edit']);
Route::patch('article/{article}',      ['as' => 'article.update', 'uses' => 'ArticleController@update']);
Если я все правильно понимаю, то метод edit выводит форму и заполняет ее данными полей редактируемой записи из базы данных. При нажатии на "сохранить" вызываем метод update, который сохраняет в базу новые введенные данные и редиректит либо к списку записей либо обратно на страницу edit.
Но как быть в ситуации, если введены некорректные данные (например, не прошли валидацию), в этом случае снова нужно вывести форму при чем таким образом, чтобы она была заполнена "последними" данными, которые ввел пользователь.
В случае с create все просто -  мы используем {{ old('...) }} для вывода последних данных.
Но как быть при update? Получается что метод update должен сохранять данные в случае успешного ввода либо же снова выводить форму с введенными данными {{ old('...) }}?
Но в этом случае получается, что фактически нам нужны три шаблона формы - для  create, для edit и для update. Многовато получается.

#2 13.05.2016 15:10:31

Re: Как вернуть в форму уже заполненные данные при неправильном вводе?

попробуй так {{ old('title') ?: $article->title }}

Не в сети

#3 17.05.2016 16:18:10

battrack

Re: Как вернуть в форму уже заполненные данные при неправильном вводе?

Спасибо за ответ, но оказывается что old принимает в качестве второго параметра значение по-умолчанию.

Подвал раздела