Custom Contrain Twig

时间:2016-07-20 10:01:08

标签: forms twig constraints symfony

我有自定义约束并使用它来验证实体的arrayCollection:

在用户实体中我有:

* @ORM\OneToMany(targetEntity="UserFiles", mappedBy="user", cascade={"all"})
* @Assert\All(constraints={  @CustomAssert\FileEmpty })

在我的twig模板中,我写{{ form_errors(form) }}我看到错误,但我不知道如何访问它并单独编写。

在控制器中我这样做了:

VarDumper::dump($form->getErrors());

结果是:

FormErrorIterator {#576 ▼
  -form: Form {#579 ▶}
  -errors: array:1 [▶]
}

如何在树枝中访问我的错误?

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,我采用了不同的方法。 我将约束移动到了userFiles实体属性。

我的问题是我不知道如何在类验证器中访问提交的数据以进行详细说明。 解决方案是:

public function validate($value, Constraint $constraint)
    {
        $userfiles = $this->context->getObject();


        if(!is_null($value))
        {
            if(is_null($userfiles->getFile()))
            {
                $this->context->buildViolation($constraint->message)->addViolation();
            }


        }

    }