我正在构建我的第一个Zend / Doctrine项目,并希望能够使用以下内容访问我的控制器中的Doctrine2实体管理器:
$this->em->persist($item);
有没有办法做到这一点,或者当Doctrine引导时我应该把它放在Zend_Registry中吗?
答案 0 :(得分:1)
在某种程度上,它取决于你如何引导Doctrine。结果是将EntityManager作为资源存储在Bootstrap中,然后在控制器中检索它。
例如,如果您在方法Bootstrap::_initDoctrine()
中实例化实体管理器,则返回此实例会将其作为密钥'doctrine'
下的资源存储在引导程序中。然后,在控制器的init()
方法中,您可以:
$this->em = $this->getInvokeArg('bootstrap')->getResource('doctrine');
或者,如果您使用Bisna application resource plugin for Doctrine,那么您必须再向下推一级才能获得实体经理:
$this->em = $this->getInvokeArg('bootstrap')->getResource('doctrine')->getEntityManager();