2014-12-31 57 views
1

我想實現一些服務,我做的第一件事是確定的私人$ EM爲的EntityManager如下:捕致命錯誤: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; 
} 
} 

的例子

/** 
* 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; 
} 

然而,當我打電話例如像一個我上面顯示,我收到以下錯誤的任何功能:開捕致命錯誤:類學說的對象\ ORM \使用EntityManager非常相同的類中的功能EntityManager無法轉換爲字符串。

我確實導入了服務。我錯過了什麼?預先感謝您對我們的支持。

回答

1

取而代之的是:

$posts = $this->$em->getRepository('BlogBundle:Post')->findBy(array(
     'author' => $author 

試試這個:

$posts = $this->em->getRepository('BlogBundle:Post')->findBy(array(
     'author' => $author 

請注意,我從$這個改變 - > $ EM到這個 - $> EM。

1
$this->$em 

應該是:

$this->em 

$此 - > $ EM試圖$ EM轉換爲字符串時,它是一個對象。除非對象定義了__toString()方法,否則您將得到一個異常。

相關問題