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)。 –