【发布时间】:2015-12-16 09:53:18
【问题描述】:
我使用的是 Symfony 2.7.6 版。我创建了一个名为 EmployeeBasicInfo 的实体,其中包含字段
名字 姓 识别码等
我创建了一个回调函数,用于验证 EmployeeBasicInfo 实体本身中的标识代码,如下所示
/**
* @Assert\Callback(groups={"edit_myinfo"})
*/
public function validateIdentificationCode(ExecutionContextInterface $context)
{
if ($this->getEmployeeIdentificationCode() == 10) {
$context->buildViolation('Identification code exists!')
->atPath('employeeFirstName')
->addViolation();
}
}
我想重新定义具有数据库检查的相同功能。问题是我无法在此函数中查询数据库。我试过 $this->getDoctrine()->getManager();和所有。但是失败了。我也有使用 codeigniter 和 yii 的圆顶。请大家帮帮我
这是我得到的错误尝试调用类“XXX\EmployeeBundle\Entity\EmployeeBasicInfo”的名为“getDoctrine”的未定义方法
【问题讨论】:
-
为了澄清,您将
$this->getDoctrine()->getManager()添加到validateIdentificationCode并引发了此异常?您的实体EmployeeBasicInfo是(我假设)一个 POPO(普通的旧 PHP 对象),因此不会从任何ContainerAware父级继承。您必须将EntityManager注入您的实体 - 尽管我认为这不是最佳实践。有趣的问题...
标签: php mysql symfony doctrine