Laravel 4:使用Form :: model的Form :: macro

时间:2013-12-11 01:35:52

标签: laravel laravel-4

是否可以将自定义Form::macro()Form::model()功能结合使用?

当我第一眼看到它时,我无法将模型数据传递给宏方法。

1 个答案:

答案 0 :(得分:8)

只有Form :: text之类的Form函数会自动查找表单模型。在宏中,你可以通过几种方式实现。最简单的方法是使用Form::getValueAttribute($name)。例如:

Form::macro('myField', function() {
    $value = Form::getValueAttribute('username');
    return "<input type='text' name='username' value=$value >";
});

然后您可以在刀片模板中使用它,如下所示:

<?php
    $user = new User;
    $user->username = "bob";
    echo Form::model($user);
    echo Form::myField();
    echo Form::close();
?>

您可以在源代码中找到所有可用的表单函数:https://github.com/laravel/framework/blob/master/src/Illuminate/Html/FormBuilder.php