Ant*_*oir 4 entity entitymanager symfony doctrine-orm
我在Entity类中有这个函数,但是getDoctrine并不喜欢......
public function getObject()
{
$em = $this->getDoctrine()->getEntityManager();
switch($this->objectType)
{
case 'video':
return $em->getRepository('fdj2012AdminBundle:Video')->find($this->objectId);
break;
case 'default':
return false;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
如何在我的实体中使用entityManager?
小智 10
实际上实体不应该知道EM.如果我需要在我的实体中使用高级逻辑,我会使用事件监听器.当你注册像服务这样的监听器时,你可以在那里传递args,比如EM或Container,并将它们放在Listener类中.
但我知道在Entity类中获取EM并不是很好的方法.通过在Entity方法中获取全局变量Kernel.
global $kernel;
if ( 'AppCache' == get_class($kernel) )
{
$kernel = $kernel->getKernel();
}
$em = $kernel->getContainer()->get( 'doctrine.orm.entity_manager' );
Run Code Online (Sandbox Code Playgroud)
对我感到羞耻:(
| 归档时间: |
|
| 查看次数: |
9570 次 |
| 最近记录: |