Laravel 5-使用“旧”的预填充表格

时间:2018-10-03 23:41:05

标签: laravel laravel-5

我有一个用于在Laravel 5应用程序中编辑现有条目的表单输入。

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

这正常工作,并且在加载表单时会预先填充值,但是如果某些表单验证失败,则在页面重新加载时会丢失我输入的电子邮件。

我试图通过此方法进行修复。

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

这有效,现在验证失败时它不会丢失值,但是它不再在初始加载时预先填充表单。

我要去哪里错了?

3 个答案:

答案 0 :(得分:4)

您可以将第二个参数传递给old()帮助器以提供默认值。因此,您可以执行以下操作:

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

因此,如果“旧”值可用,它将使用该值,否则它将使用您首次加载表单时提供的默认值。

这是文档参考:

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

答案 1 :(得分:1)

您没有做任何错,但是old()最初将为null,因为实际上没有“旧”数据。尝试这样的事情:

<input name="obj_email" type="text" value="{{ old('obj_email')?: $myOjbect->obj_email }}">

答案 2 :(得分:1)

这是您需要实现的逻辑。

如果有一个old('value')放入该值,否则放入$object->value

这是代码的样子

<input name="obj_email" type="text"
    value="old('obj_email') ? old('obj_email') : $myObject->my_email">