Laravel 5 - Предварительно заполнить форму, используя «старый» - PullRequest
0 голосов
/ 04 октября 2018

У меня есть форма ввода для редактирования существующей записи в приложении Laravel 5, как это ..

<input name="obj_email" type="text" value="{{$myobject->obj_email}}">

Это работает правильно и при загрузке формы предварительно заполняет значение, но если какая-то формапроверка завершается неудачно, когда страница перезагружается, она теряет введенный мною адрес электронной почты.

Я попытался исправить это, выполнив это ..

<input name="obj_email" type="text" value="{{old('obj_email')}}">

Это работает, и теперь оно не теряет значениекогда проверка не проходит, но она больше не заполняет форму при начальной загрузке.

Куда я иду?

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

Вы можете передать второй параметр помощнику old (), чтобы указать значение по умолчанию.Таким образом, вы можете сделать что-то вроде:

<input name="obj_email" type="text" value="{{old('obj_email',$myobject->obj_email)}}">

Так что, если «старое» значение доступно, оно будет использовать его, в противном случае оно будет использовать значение по умолчанию, которое вы указали при первой загрузке формы.

Вот ссылка на документ:

https://laravel.com/docs/5.7/helpers#method-old

0 голосов
/ 04 октября 2018

Это логика, которую вам нужно реализовать.

Если есть old('value'), введите это значение, в противном случае введите $object->value.

, так может выглядеть код

<input name="obj_email" type="text"
    value="old('obj_email') ? old('obj_email') : $myObject->my_email">
0 голосов
/ 04 октября 2018

Вы ничего не делаете неправильно, но old() изначально будет нулевым, так как в действительности нет "старых" данных.Попробуйте что-то вроде этого:

<input name="obj_email" type="text" value="{{ old('obj_email')?: $myOjbect->obj_email }}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...