[英]Laravel: Form model binding to inputs with options
我使用laravel的表单模型绑定创建了一个表单。
在表单中,我创建了显示模型信息所需的表单域。 当写出最小的结构时,一切都很好:
{{ Form::model( $user, array('route' => array('users.update', $user->id), 'method' => 'put' )) }}
{{ Form::label('first_name', "First Name")}}
{{ Form::text('first_name')}}
...
设置这种方式,当页面加载时,我的模型中的first_name
值会自动填充,就像我期望/想要的那样。
当我尝试为文本输入指定选项时出现问题。 我正在使用bootstrap,所以我想添加一个form-control
类,我也喜欢输入字段中的占位符。 为此,我定义了我的文本输入,如下所示:
{{ Form::text('first_name', array('placeholder' => "e.g. Zoe", 'class' => 'form-control'))}}
请注意,文本值的第二个参数为空。 这是因为我希望通过模型绑定输入,而不必添加类似$user->first_name
东西,因为那么模型绑定的重点是什么?
如果我这样离开它我得到一个错误,因为Form::text()
需要一个字符串作为值 ,但如果我通过输入类似的东西修复它:
{{ Form::text('first_name', '', array('placeholder' => "e.g. Zoe", 'class' => 'form-control'))}}
然后我得到一个空白值,因为我给它一个空白字符串。
有没有办法可以在laravel中使用表单模型绑定来填充值,并且仍然传递我的占位符和类定义的options数组?
你需要把Input::old()
放在那里:
{{ Form::text('first_name', Input::old('first_name'), array('placeholder' => "e.g. Zoe", 'class' => 'form-control'))}}
那么会发生什么:
Laravel查找任何旧输入,它将用作第一个选项(如果存在验证错误,则使用输入数据重新填充表单。
如果未找到旧的输入,则它将恢复为模态数据
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.