我在自定义类验证器方面有问题。
这是我的自定义验证器.php
<?php
use Illuminate'Validation'Validator;
class CustomValidator extends Validator {
public function validateEmailExistence($attribute, $value, $parameters)
{
//check email existence
}
}
在验证器中.php调用类
Validator::extend('check_email', 'CustomValidator@validateEmailExistence');
在绑定中.php解析验证程序
Validator::resolver(function($translator, $data, $rules, $messages)
{
return new CustomValidator($translator, $data, $rules, $messages);
});
当我运行时,我收到此错误:
Target [Symfony'Component'Translation'TranslatorInterface] is not instantiable.
如果我通过匿名函数扩展验证器,它可以正常工作。我知道这是接口绑定的问题,但我不知道应该使用哪种实现。
您的代码对我来说似乎没问题,但请尝试创建服务提供商并将其注册到应用程序配置文件中。
class ValidationServiceProvider extends ServiceProvider
{
public function register()
{
}
public function boot()
{
$this->app->validator->resolver(function($translator, $data, $rules, $messages) {
return new CustomValidator($translator, $data, $rules, $messages);
});
}
}
注意:在创建服务提供程序后执行作曲家转储自动。
如果您仍然收到错误,请告诉我。