【问题标题】:Laravel 4 Form Text InputLaravel 4 表单文本输入
【发布时间】:2013-11-10 02:14:06
【问题描述】:

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

然后默认值会填充该字段,并且需要在输入新值之前将其删除。所以它甚至不能用作占位符。

提前谢谢你,

【问题讨论】:

  • 简单的解决方案:给它一个默认值 none ""
  • 谢谢你,迈克。

标签: php laravel laravel-4 blade


【解决方案1】:

提供null,而不是值。 (不提供空字符串""

如果您要使用表单模型绑定 (http://laravel.com/docs/html#form-model-binding),这将在未来派上用场,因为 null 将给出给定模型属性的值。

【讨论】:

  • 谢谢你,Rob - 从来没有说这解决了问题 :)
【解决方案2】:

你可以传递一个空值""like,

{{ 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

【讨论】:

    【解决方案3】:

    我发现最好使用Input::old('first_name') 作为默认值,而不是仅仅使用“”,例如:

    {{ Form::text('first_name', Input::old('first_name')) }}

    这样,如果您返回带有无效数据的表单并通过表单输入,它将重新加载用户先前输入的旧输入。在这种情况下,first_name 也可以绑定到数据库表中的 first_name 字段。

    编辑:是的,第三个选项是一组输入选项,例如文本字段 id、大小等或任何其他 HTML 属性。

    基南:)

    【讨论】:

      猜你喜欢
      • 2013-06-28
      • 2014-08-05
      • 2015-05-13
      • 2014-06-07
      • 2013-08-06
      • 2012-06-28
      • 1970-01-01
      • 2020-02-20
      • 2014-12-19
      相关资源
      最近更新 更多