我有一个用于在Laravel 5应用程序中编辑现有条目的表单输入。
<input name="obj_email" type="text" value="{{$myobject->obj_email}}">
这正常工作,并且在加载表单时会预先填充值,但是如果某些表单验证失败,则在页面重新加载时会丢失我输入的电子邮件。
我试图通过此方法进行修复。
<input name="obj_email" type="text" value="{{old('obj_email')}}">
这有效,现在验证失败时它不会丢失值,但是它不再在初始加载时预先填充表单。
我要去哪里错了?
答案 0 :(得分:4)
您可以将第二个参数传递给old()帮助器以提供默认值。因此,您可以执行以下操作:
<input name="obj_email" type="text" value="{{old('obj_email',$myobject->obj_email)}}">
因此,如果“旧”值可用,它将使用该值,否则它将使用您首次加载表单时提供的默认值。
这是文档参考:
答案 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">