Validation Symfony 2唯一性约束验证器
有人能解释一下为什么Uniquentity约束类定义:Validation Symfony 2唯一性约束验证器,validation,symfony-2.1,Validation,Symfony 2.1,有人能解释一下为什么Uniquentity约束类定义: // ... public $service = 'doctrine.orm.validator.unique'; public function validatedBy() { return $this->service; } //... 不仅仅是: public function validatedBy() { return "UniqueEntityValidator"; } UniquentityVa
// ...
public $service = 'doctrine.orm.validator.unique';
public function validatedBy()
{
return $this->service;
}
//...
不仅仅是:
public function validatedBy()
{
return "UniqueEntityValidator";
}
UniquentityValidator类存在并具有所需的所有逻辑。这里的服务要点是什么
我这样问是因为现在我不能在Symfony框架之外使用Uniquentity,因为它有一些依赖性 如本文所述,validatedBy直接返回别名,而不是服务。这允许您在DIC中配置自己的验证程序服务:
services:
validator.unique.your_validator_name:
class: Fully\Qualified\Validator\Class\Name
tags:
- { name: validator.constraint_validator, alias: doctrine.orm.validator.unique }
由于此Uniquentity约束是桥的一部分,这意味着您应该在Symfony2上下文中使用它。这就是为什么不能在框架之外真正使用它
但您可以将此服务值更改为类名。属性是公共的:,根据上面给出的文档,它将起作用。如本文所述,validatedBy返回别名,而不是直接返回服务。这允许您在DIC中配置自己的验证程序服务:
services:
validator.unique.your_validator_name:
class: Fully\Qualified\Validator\Class\Name
tags:
- { name: validator.constraint_validator, alias: doctrine.orm.validator.unique }
由于此Uniquentity约束是桥的一部分,这意味着您应该在Symfony2上下文中使用它。这就是为什么不能在框架之外真正使用它
但您可以将此服务值更改为类名。属性是公共的:,根据上面给出的文档,它将起作用。这允许您覆盖验证器。这允许您覆盖验证器。