2012-05-14 74 views
2

我已經按照書中的每一步,但我無法去工作任何實體定製存儲庫。Symfony2定製存儲庫不工作

例如,我有我的用戶實體:

/** 
* @ORM\Table("fos_user") 
* @ORM\Entity(repositoryClass="XXX\UserBundle\Repository\UserRepository") 
*/ 
class User extends BaseUser implements ParticipantInterface 
{ 
} 

而且它的倉儲類:

namespace XXX\UserBundle\Repository; 

use Doctrine\ORM\EntityRepository; 

/** 
* UserRepository 
* 
* This class was generated by the Doctrine ORM. Add your own custom 
* repository methods below. 
*/ 
class UserRepository extends EntityRepository 
{ 

    public function initializeUser() 
    { 
     //some logic 
    } 

} 

但是,當我調用$用戶> initializeUser();我得到致命錯誤:調用未定義的方法XXX \ UserBundle \ Entity \ User :: initializeUser(),所以很明顯,它不能識別自定義存儲庫,即使我已經在實體類上聲明它。有任何想法嗎?

回答

5

自定義存儲庫不會將方法添加到實體對象。

要呼叫您的自定義的方法,用$em實體管理器:

$em->getRepository('UserBundle:User')->initializeUser(), 
+0

謝謝!我一直在想那部分。 – ikleiman