Symfony2自定义存储库不起作用

ikl*_*man 2 php symfony doctrine-orm

我已经按照书中的每一步,但我无法开始工作任何实体自定义存储库.

例如,我有我的用户实体:

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

它的存储库类:

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
    }

}
Run Code Online (Sandbox Code Playgroud)

但是当我调用$ user-> initializeUser(); 我得到致命错误:调用未定义的方法XXX\UserBundle\Entity\User :: initializeUser(),因此很明显它无法识别自定义存储库,即使我已在实体类上声明它.有任何想法吗?

Reu*_*ven 5

自定义存储库不会向Entity对象添加方法.

要使用$em实体管理器调用自定义方法:

$em->getRepository('UserBundle:User')->initializeUser(),
Run Code Online (Sandbox Code Playgroud)