此方法位于我的实体类
中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;
将Symfony 2.5与mysql一起使用。
我提交表单时收到的错误是
Method&#34; validateStartDate&#34; Callback约束的目标不是 存在
在这方面的任何帮助将不胜感激。
提前致谢
答案 0 :(得分:2)
从Symfony 2.4开始,回调验证程序为simplified。您可以在方法上使用Callback批注来告诉Syfmony2这是一个在验证时执行的自定义函数。
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
/**
* @Assert\Callback
*/
public function validate(ExecutionContextInterface $context)
{
// ...
}
}