[英]Symfony2 validation - How to use a value from the form?
我有一个表格,必须填写一些信息。 对于表单的字段之一,我需要创建一个自定义验证器。 实际上,我需要验证输入的字符串是否具有ab.123.cd之类的特定格式。
我可以使用regexp进行验证,但是“ ab”应该等于表单中的另一个字段,因此我需要在验证器类中访问该另一个字段。
这是我的验证器:
public function validate($value, Constraint $constraint)
{
preg_match('/[^\/]+/i', $value, $publisherDoiAbbr);
if($publisherDoiAbbr[0] !== $enquiry->getPublisher()->getDoiAbbreviation()) {
$this->context->addViolation($constraint->message_publisher_DOI);
}
$this->context->addViolation($constraint->message_journal_DOI);
}
我在这里需要$ enquiry-> getPublisher()-> getDoiAbbreviation()
您知道如何在验证器类中访问表单的值吗?
先感谢您。
您要做的是制作一个“ CLASS CONSTRAINT”验证器。
向下滚动到这里:
http://symfony.com/doc/current/cookbook/validation/custom_constraint.html
直到您到达类约束部分为例。
================================================== ==============
我不明白什么是“ getTargets()”
将此方法添加到Constraint类(而不是验证器类)中
class MyConstraint extends Constraint
{
public function getTargets()
{
return self::CLASS_CONSTRAINT;
}
添加后,您的验证器方法将接收一个对象,而不是单个值。
class MyValidator extends ConstraintValidator
{
public function validate($value, Constraint $constraint)
{
// $value will be an object, adjust your code accordingly
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.