Php Symfony2-数据库签入实体回调函数
我正在使用Symfony 2.7.6版。我已经创建了一个名为EmployeeBasicInfo的实体,其中包含字段 名字 姓氏 识别码等 我创建了一个回调函数,用于验证EmployeeBasicInfo实体本身中的标识码Php Symfony2-数据库签入实体回调函数,php,mysql,symfony,doctrine,Php,Mysql,Symfony,Doctrine,我正在使用Symfony 2.7.6版。我已经创建了一个名为EmployeeBasicInfo的实体,其中包含字段 名字 姓氏 识别码等 我创建了一个回调函数,用于验证EmployeeBasicInfo实体本身中的标识码 /** * @Assert\Callback(groups={"edit_myinfo"}) */ public function validateIdentificationCode(ExecutionContextInterface $c
/**
* @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制作的圆顶一样。请帮我一个忙
这就是我试图调用类的名为“getDoctrine”的未定义方法时遇到的错误“XXX\EmployeeBundle\Entity\EmployeeBasicInfo您做错了。实体应该尽可能简单,应该没有逻辑。您应该将数据库签出实体移动到某个服务,在那里注入
doctor
,并在服务内部进行检查
您得到的错误只是说您试图调用实体中不存在的方法
getDoctrine
(没关系,您的实体不应该有这样的方法) 我已经有一个服务app.util,其中包含一个函数。我从这个实体调用它,比如$this->get('app.util')->test()。同样的,我也会遇到一些错误,您是否将您的服务注入到实体中?如果没有,您的实体对您的服务或条令一无所知,这就是为什么会出现错误。您不应该在实体中使用此功能,但在服务中是创建服务、为dorctrine配置服务和在实体中注入服务的任何参考链接???我对symfony不熟悉。。请帮助我…这占用了我很多时间不,因为您不应该向entityTo注入任何内容要澄清的是,您在validateIdentificationCode
中添加了$this->getDoctrine()->getManager()
,它抛出了此异常?您的实体EmployeeBasicInfo
是(我假设)一个POPO(普通的旧PHP对象),因此不会从任何ContainerWare
父对象继承。您必须将EntityManager
注入您的实体,尽管我认为这不是最佳实践。有趣的问题…可能是重复的