2014-03-29 3 views
2

Laravel에서 Validator 클래스를 확장하고 싶습니다. 그러나 모든 예제에서 make 메소드는 Validator source code에서 찾을 수없는 새 인스턴스를 만드는 데 사용됩니다. 이 방법을 어떻게 재정의 할 수 있습니까? 생성자는 TranslatorInterface 인스턴스가 필요하므로 옵션이 아닌 것 같습니다.Laravel에서 Validator 클래스 확장하기

답변

3

make 방법은 실제로 Illuminate\Validation\Factory에 있습니다.

이 방법을 확장하려면 IoC 바인딩을 교체해야합니다. 컨테이너의 바인딩에 과부하가 걸립니다.

App::bindShared('validator', function($app) 
{ 
    $validator = new \Your\Validator\Factory($app['translator'], $app); 

    if (isset($app['validation.presence'])) 
    { 
     $validator->setPresenceVerifier($app['validation.presence']); 
    } 

    return $validator; 
}); 
+0

그러나 나는 정말로 이해하지 못합니다. Factory ($ app [ 'translator'], $ app)는 무엇입니까? –

+0

그래서'Illuminate \ Validator \ Factory'를 확장하는 자신 만의'Factory' 클래스를 생성해야합니다. 생성자가 주입 한 매개 변수가 필요합니다. 기본적으로 위의 내용은 ['Illuminate \ Validator \ ValidationServiceProvider'] (http://laravel.com/api/source-class-Illuminate.Validation.ValidationServiceProvider.html#14-37)에서 가져온 것입니다. –