2
我希望在Laravel中擴展Validator類。但是,在所有示例中,使用make方法創建一個新的實例,在Validator source code中找不到。我怎樣才能重寫這個方法?構造函數需要一個TranslatorInterface
實例,這似乎不是一個選項?在Laravel中擴展Validator類
我希望在Laravel中擴展Validator類。但是,在所有示例中,使用make方法創建一個新的實例,在Validator source code中找不到。我怎樣才能重寫這個方法?構造函數需要一個TranslatorInterface
實例,這似乎不是一個選項?在Laravel中擴展Validator類
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;
});
聽起來不錯,但我不太明白。什麼是工廠($ app ['translator'],$ app)? –
所以你需要創建自己的'Factory'類來擴展'Illuminate \ Validator \ Factory'。這些構造函數注入參數是必需的。基本上,你上面看到的是來自['Illuminate \ Validator \ ValidationServiceProvider'](http://laravel.com/api/source-class-Illuminate.Validation.ValidationServiceProvider.html#14-37)。 –