我已经按照本书的每一步进行操作,但我无法开始使用任何实体自定义存储库。
例如,我有我的用户实体:
/**
* @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(),所以很明显它无法识别自定义存储库,即使我已经声明它实体类。有什么想法吗?
答案 0 :(得分:5)
自定义存储库不会向Entity对象添加方法。
使用$em
实体管理员调用您的自定义方法:
$em->getRepository('UserBundle:User')->initializeUser(),