【问题标题】:Method "xxx" targeted by Callback constraint does not exist Symfony2回调约束所针对的方法“xxx”不存在 Symfony2
【发布时间】:2014-08-13 05:19:30
【问题描述】:

这个方法在我的实体类中

public function validateStartDate(ExecutionContextInterface $context)
{
    if ($this->getEndDate() < $this->getStartDate()){
      $context->addViolationAt(
          'endDate',
          'End date cannnot be before Start date',
          array(),
          null
      );
    }

}

我在 $startDate 上使用回调约束

/**
 * @ORM\Column(type="datetime", name="start_date")
 * @Assert\Type("\DateTime")
 * @Assert\Callback(methods={"validateStartDate"})
 */
private $startDate;

我有以下进口

use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\ExecutionContextInterface;
use Symfony\Component\Validator\ExecutionContext;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;

在 mysql 中使用 Symfony 2.5。

我提交表单时遇到的错误是

回调约束所针对的方法“validateStartDate”不 存在

在这方面的任何帮助将不胜感激。

提前致谢

【问题讨论】:

    标签: validation symfony callback constraints


    【解决方案1】:

    从 Symfony 2.4 开始,回调验证器是 simplified。您可以在方法上使用 Callback 注释来告诉 Syfmony2 这是一个在验证时执行的自定义函数。

    use Symfony\Component\Validator\Constraints as Assert;
    class Author
    {
        /**
         * @Assert\Callback
         */
        public function validate(ExecutionContextInterface $context)
        {
            // ...
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-26
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多