2

我已经遵循了书中的每一步,但我无法使用任何实体自定义存储库。

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

/**
 * @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(),因此很明显它无法识别自定义存储库,即使我已经在实体类上声明了它。有任何想法吗?

4

1 回答 1

5

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

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

$em->getRepository('UserBundle:User')->initializeUser(),
于 2012-05-14T08:46:04.160 回答