Laravel 4:Can';在编辑表单时,无法使用表单宏获取模型数据


Laravel 4: Can't get model data with a form macro on edit form

在编辑表单时,我遇到了用存储在DB中的数据填充表单字段的问题。

当我使用文档中的代码片段时,一切都很好。然而,我需要将一个css类附加到表单字段,并且这不能作为的参数传递

{{ Form::text('email') }}

所以我创建了以下表单::宏

Form::macro('textclass', function($name, $class = null)
{
    return '<input type="text" name="'.$name.'" id="'.$name.'" class="'.$class.'"/>';
});

所以我可以在我的观点中使用这个:

{{ Form::textclass('email', 'm-wrap span12') }}

但是,字段中并没有填充模型数据。

你知道怎么解决这个问题吗?

为了参考,如果您想检查Form生成了什么,可以查找vendor/laravel/framework/src/Illuminate/Html/FormBuilder

FormBuilder类中,您可以找到输入的方法。文本输入的方法看起来像这个

 public function text($name, $value = null, $options = array())
 {
    return $this->input('text', $name, $value, $options);
 } 

正如您所看到的,第二个参数是值,第三个参数是选项数组。

所以对于你的表单,它看起来像这个

Form::text('email', null, array('class'=>'m-wrap span12'))