我想調整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()'來定義你自己的方法。希望這可以幫助! –