Laravel 4表单文本输入

时间:2013-10-30 13:18:40

标签: php laravel laravel-4 blade

您好我正在使用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')) }}

然后默认值填充该字段,需要在输入新值之前删除。所以它甚至不能像占位符一样使用。

提前谢谢你,

3 个答案:

答案 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属性。

基南:)