【发布时间】:2013-06-12 01:10:09
【问题描述】:
有没有办法自定义 Laravel 的任何核心类,特别是 Form 类?我正在寻找自定义 Form::text() 和 Form::textarea() 以便它包含一些我总是在我的领域中使用的默认类。
我以前在 CI 中经常这样做,我想知道 Laravel 是否也允许这样做。
【问题讨论】:
有没有办法自定义 Laravel 的任何核心类,特别是 Form 类?我正在寻找自定义 Form::text() 和 Form::textarea() 以便它包含一些我总是在我的领域中使用的默认类。
我以前在 CI 中经常这样做,我想知道 Laravel 是否也允许这样做。
【问题讨论】:
你可以使用 Laravel 内置的表单宏。
http://laravel.com/docs/html#custom-macros
例如。
Form::macro('customField', function()
{
return '<input type="text" class="macro-some-class">';
});
并调用宏
echo Form::customField();
或
{{Form::customField()}}
【讨论】:
Form::macro() 看起来正是我所需要的。但是为了世界和平,难道没有办法扩展核心 Laravel 类来满足我们的特定需求吗?
Form::text() 中的第三个参数接受您希望传递给文本字段的属性数组,例如,
Form::text('name', 'Enter your name', array('class' => 'large', 'title' => 'Enter your full name'));
【讨论】: