我想调整Laravel 4中的Illuminate \ Html \ FormBuilder类,以便根据输入类型自动包含每个输入的CSS类。 <输入类型=“无线电”类=“无线电”/>扩展核心Laravel 4组件类?
我已经建立了我自己的类,它扩展了原:现在
namespace Shady;
class FormBuilder extends Illuminate\Html\FormBuilder {
public function input($type, $name, $value = null, $options = array()) {
$options['class'] = isset($options['class'])
? implode(' ', array_unique(array_merge(array($type), explode(' ', $options['class']))))
: $type;
parent::input($type, $name, $value, $options);
}
}
,问题是,我怎么Laravel 4使用它?
我已经看过app/config/app.php,并且只有对HTML Fascade类的引用。我不知道如何或在哪里是会转化为照亮的\ Support \的ServiceProvider \ HtmlServiceProvider类,但该类硬编码的FormBuilder类,ALA
protected function registerFormBuilder()
{
$this->app['form'] = $this->app->share(function($app)
{
$form = new FormBuilder($app['html'], $app['url'], $app['session']->getToken());
return $form->setSessionStore($app['session']);
});
}
我不知道我是否可以欺骗成以某种方式加载我的课程版本?或者,如果没有,我还能如何顺利,整洁地添加此功能?干杯。
当你可以很容易地使用CSS选择器来查找这些类型的输入时,它似乎需要很多额外的工作才能使其工作。它真的*是必要的吗? –
在这种情况下,我是一个白痴,并没有意识到CSS选择器可以做到这一点(这是当你离开开发18个月时会发生什么)。但作为一个原则,我想知道它是如何完成的,所以我也可以为其他事情做到这一点。干杯 – JamShady
在框架中的这个级别,我不认为你会想要重写任何方法。相反,使用'HTML :: macro()'来定义你自己的方法。希望这可以帮助! –