我想实现一些服务,我做的第一件事是将私有$ em定义为EntityManager,如下所示:
<?php
namespace Users\UsersBundle\Services;
use Doctrine\ORM\EntityManager;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Usuarios\UsersBundle\Entity\User;
/**
* Class UserManager
*/
class UserManager
{
private $em;
/**
* @param EntityManager $em
*/
public function __construct(EntityManager $em)
{
$this->$em = $em;
}
}
在同一个类中使用EntityManager的函数示例:
/**
* Find all posts for a given author
*
* @param User $author
*
* @return array
*/
public function findPosts(User $author)
{
$posts = $this->$em->getRepository('BlogBundle:Post')->findBy(array(
'author' => $author
)
);
return $posts;
}
但是,当我调用任何函数时,例如上面显示的函数,我得到以下错误:Catchable Fatal Error:类Doctrine \ ORM \ EntityManager的对象无法转换为字符串。
我确实导入了这项服务。我错过了什么?提前感谢您的支持。
答案 0 :(得分:2)
答案 1 :(得分:1)
而不是:
$posts = $this->$em->getRepository('BlogBundle:Post')->findBy(array(
'author' => $author
试试这个:
$posts = $this->em->getRepository('BlogBundle:Post')->findBy(array(
'author' => $author
请注意,我已将$ this-&gt; $ em更改为$ this-&gt; em。