Laravel表单包含占位符,类和输入:: old

时间:2014-09-26 11:19:05

标签: forms laravel

我正在尝试习惯使用Laravel的刀片。

我想创建一个名为company的文本输入。

输入字段需要有一个id和一个类。

如果数据库中没有数据,或者存储的数据已存在,我还想显示一个占位符。

最后,我想在出现错误的情况下保留引入的输入。

我想在此处使用类似的东西:

{{ Form::text(
  'company',
  isset($user->company)?$user->company:array('placeholder'=>'Your company'),
  array('class' => 'field required', 'id' => 'company'),
  Input::old('company')
) }}

任何帮助将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:3)

简单方法,使用form model binding

{{ Form::model($user, [ ...options...]) }}

 {{ Form::text(
   'company',  // refers to $user->company
    null,      // auto populated with old input in case of error OR $user->company
    array('class' => 'field required', 'id' => 'company',
    'placeholder' => 'Your company')  // placeholder is html attribute, don't use model data here
 ) }}

如果您不想要表单模型绑定,这就是您所需要的:

 {{ Form::text(
   'company',
    $user->company, // auto populated with old input in case of error
    array('class' => 'field required', 'id' => 'company',
    'placeholder' => 'Your company')
 ) }}

答案 1 :(得分:1)

发现它!

如果我这样做,它对我来说很好:

{{ Form::text( 
  'company', 
  Input::old( 'company', $user -> company ) , 
  array( 'class' => 'field required', 'id' => 'company', 'placeholder' => 'Your company' ) 
) }}

答案 2 :(得分:0)

只要POST数据中的键与输入的name属性相同,Laravel就会为您处理重新填充的输入。

使用Form::text(),第一个参数是字段名称,第二个参数是您想要的默认值,第三个参数是您想要设置的HTML属性数组。所以,你会有:

{{ Form::text('company', null, array(
    'class' => '',
    'id' => '',
    'placeholder' => '',
)) }} 

显然已将classidplaceholder值替换为您想要的值。