Laravel 4의 Illuminate \ Html \ FormBuilder 클래스를 조정하여 각 입력에 CSS 클래스를 자동으로 포함시키고 싶습니다. 예를 들어 입력 유형에 해당합니다. < 입력 타입 I 원본을 확장 내 자신의 클래스를 생성 한/>코어 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 클래스에 대한 참조 만 있습니다. 나는 확실하지 않다 방법 또는 그
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']);
});
}
람를 분명히 \ 지원에 \ ServiceProvider \ HtmlServiceProvider 클래스,하지만 클래스 하드 코딩 FormBuilder 클래스를 변환 어디 나도으로 속일 수 있는지 궁금하네요 클래스의 내 버전을 어떻게 든로드하고 있습니까? 그렇지 않다면이 기능을 부드럽고 깔끔하게 추가하려면 어떻게해야합니까? 건배.
이러한 유형의 입력을 찾기 위해 CSS 선택기를 쉽게 사용할 수있게되었을 때이 기능을 사용하는 것은 많은 추가 작업처럼 보입니다. 정말 필요한 것일까? –
이 경우, 나는 바보이며 CSS 선택자가 그 일을 할 수 있음을 깨닫지 못했습니다 (18 개월 동안 개발 단계에서 벗어날 때 일어나는 일입니다). 그러나 원리로서 나는 그것이 다른 일을 위해 그것을 할 수 있도록 어떻게 그것이 이루어 졌는지 알고 싶습니다. 건배 – JamShady
프레임 워크의 해당 수준에서는 어떤 방법을 재정의하고 싶지 않습니다. 대신'HTML :: macro()'를 사용하여 자신 만의 메소드를 정의하십시오. 희망이 도움이! –