具有数据库连接依赖关系的自定义约束验证器Symfony2
发布时间:2020-05-23 14:09:26 所属栏目:MsSql 来源:互联网
导读:我正在向Symfony2项目添加自定义验证查询. The docs缺少一个完整的例子,我不知道如何将数据库连接实际注入到验证器类中.我在我的配置中创建了服务,在我的Constraint类中添加了validatedBy别名方法,并在我的验证器类中设置了这个: use DoctrineDBALConnection
|
我正在向Symfony2项目添加自定义验证查询. The docs缺少一个完整的例子,我不知道如何将数据库连接实际注入到验证器类中.我在我的配置中创建了服务,在我的Constraint类中添加了validatedBy别名方法,并在我的验证器类中设置了这个: use DoctrineDBALConnection;
class ZipDatabaseValidator extends ConstraintValidator
{
/**
*
* @var Connection
*/
private $connection;
public function __construct(Connection $dbalConnection) {
$this->connection = $dbalConnection;
}
public function validate($zipcode,Constraint $constraint)
{
$sql = 'SELECT * FROM zip_table WHERE zip_code = ?';
$stmt = $this->connection->prepare($sql);
...
这是我的服务配置: validator.node.zip_in_database:
class: AcmeBundleValidatorConstraintsZipDatabaseValidator
arguments: [@database_connection]
tags:
- { name: validator.constraint_validator,alias: zip_in_database }
在这种情况下,我会收到错误:
我如何将其设置为服务或以其他方式注入数据库连接? 解决方法validator.node.zip_in_database:
class: AcmeBundleValidatorConstraintZipDatabaseValidator
arguments: [@database_connection]
tags:
- { name: validator.constraint_validator,alias: zip_in_database }
你必须通过教条作为你的Service的参数. 编辑 确保别名与validatedBy方法返回相同! //AcmeBundleValidatorConstraintZipDatabase class
public function validatedBy()
{
return 'zip_in_database';
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
