我想用,比如:
$em = $this->getEntityManager();
Run Code Online (Sandbox Code Playgroud)
在实体内部.
我知道我应该将此作为一项服务,但出于某些测试目的,我想从实体访问它.
是否有可能实现这一目标?
我试过:
$em = $this->getEntityManager();
$profile_avatar = $em->getRepository('bundle:Perfils')->findOneByUser($this-getId());
Run Code Online (Sandbox Code Playgroud)
但是没有用.
致命错误:调用未定义的方法代理\ webBundleEntityUserProxy :: getEntityManager()在 /opt/lampp/htdocs/web/src/Pct/bundle/Entity/User.php上线 449
我为什么要这样做呢?
我有3种用户:Facebook,Twitter和MyOwnWebsite用户.他们每个都有不同的头像链接Facebook的个人资料,推特或其他,如果它的myownwebsite用户,我从数据库中的URL检索头像.目前,我不想创建服务,因为我只是想让它工作,测试它,而不是创建一个最终部署.所以这就是我试图从实体中调用实体管理器的原因.到目前为止,我不想修改配置文件,只需修改此实体.
我在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?