繁体   English   中英

Laravel:使用选项绑定到输入的表单模型

[英]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'))}}

那么会发生什么:

  1. Laravel查找任何旧输入,它将用作第一个选项(如果存在验证错误,则使用输入数据重新填充表单。

  2. 如果未找到旧的输入,则它将恢复为模态数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM