您好我正在使用Laravel 4表单。我很难在没有选择“默认值”的情况下使用特定类生成文本输入。我想做以下事情:
{{ Form::text('first_name', array('class' => 'first_name')) }}
但是我收到此错误(htmlentities() expects parameter 1 to be string, array given
。),除非我添加默认值:
{{ Form::text('first_name', 'Some Value', array('class' => 'first_name')) }}
然后默认值填充该字段,需要在输入新值之前删除。所以它甚至不能像占位符一样使用。
提前谢谢你,
丹
答案 0 :(得分:20)
而不是值,提供null
。 (不要提供空字符串""
)
如果您打算使用表单模型绑定(http://laravel.com/docs/html#form-model-binding),这将在以后派上用场,因为null
将给出给定模型属性的值。
答案 1 :(得分:6)
您可以传递空值""
,例如
{{ Form::text('first_name', '', array('class' => 'first_name')) }}
因为Laravel 4的HTML Form Builder
API会接受第一个参数name
,第二个参数为value
,默认为null
,第三个参数为options array
默认情况下为empty array
。
所以基本上你可以通过只传递名称
来构建文本输入{{ Form::text('first_name') }}
如果你打算传递第三个参数的选项,你也必须传递第二个参数。
请在此处查看API文档http://laravel.com/api/source-class-Illuminate.Html.FormBuilder.html#235-246
答案 2 :(得分:-2)
我发现最好使用Input::old('first_name')
作为默认值,而不仅仅是"",如:
{{ Form::text('first_name', Input::old('first_name')) }}
这样,如果您返回包含无效数据的表单并传递表单输入,它将重新加载用户先前输入的旧输入。在这种情况下, first_name 也可以绑定到数据库表中的 first_name 字段。
编辑:是的,第三个选项是输入选项数组,例如文本字段ID,大小等或任何其他HTML属性。
基南:)