我正在尝试将EntityManager对象发送到我的自定义验证器。为此,我创建了一个服务并将实体管理器定义为参数。
问题在于参数没有发送到验证器,它在__construct()函数中引发了一个错误,指示没有传递任何参数。
这是我的服务的定义:
dinamic.shop.validator.deliverydate:
class: Dinamic\ShopBundle\Validator\Constraints\DeliveryDateValidator
arguments:
- @doctrine.orm.entity_manager
tags:
- { name: validator.constraint_validator, alias: deliverydate }
这是我的约束的validateBy()方法:
class DeliveryDate extends Constraints
{
...
public function validateBy()
{
return 'deliverydate';
}
}
这是我的ConstraintValidator:
最后,这就是我在字段上设置约束的方式。该字段未映射到任何实体:
->add('deliveryday', 'date', array(
'label' => 'Día de entrega',
'widget' => 'single_text',
'format' => 'dd/MM/yyyy',
'constraints' => array(
new NotBlank(),
new DeliveryDate($deliveryDateOptions),
),
)
)
我认为我的错误是在FormType类中,我在该类上对字段设置了约束,但找不到任何非映射字段的示例。
我正在使用Symfony2.3,非常感谢您的帮助。
[编辑]
我使用了命令“ sudo php app /控制台容器:调试| grep验证程序”,并且我创建的服务出现在结果上
dinamic.shop.validator.deliverydate container Dinamic\ShopBundle\Validator\Constraints\DeliveryDateValidator
我发现了错误。问题是函数'validateBy',应该是validatedBy()
因此,我唯一需要做的更改就是更改上述功能。
谢谢@Patt的帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句