Symfony2自定义存储库不起作用

时间:2012-05-14 08:21:15

标签: php symfony doctrine-orm

我已经按照本书的每一步进行操作,但我无法开始使用任何实体自定义存储库。

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

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

}

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

1 个答案:

答案 0 :(得分:5)

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

使用$em实体管理员调用您的自定义方法:

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