Symfony2自定义存储库类

时间:2013-03-02 15:59:17

标签: php symfony doctrine-orm repository entity

我是symfony2的新手,我正在尝试创建自定义存储库类而无法执行此操作。

这是我正在做的事情:

  • 我在实体类(MobilePhones)中添加了注释
  

@ORM \实体(repositoryClass = “Maak \ DefaultBundle \实体\ MobilePhonesRepository”)

  • 在MobilePhonesRepository中,我创建了名为findAllMobilePhones()的自定义函数

  • 在控制器中我使用:

  • 调用函数
  

$ EM-> getRepository( 'MaakDefaultBundle:MobilePhones') - > findAllMobilePhones();

但是我得到Undefined method findAllMobilePhones(),我已经清除了缓存并尝试了同样的错误。有什么问题?

我的存储库类:

<?php

namespace Maak\DefaultBundle\Entity;
use Doctrine\ORM\EntityRepository;

class MobilePhonesRepository extends EntityRepository
{
    public function findAllMobilePhones()
    {
        return $this->getEntityManager()->createQuery('SELECT p FROM AcmeStoreBundle:Product p ORDER BY p.name ASC') ->getResult();
    }
}

1 个答案:

答案 0 :(得分:2)

感谢所有人的时间。最后我发现了这个问题。

我决定调试整个项目,发现在XMLDriver中没有设置repository-class,它将在元数据中设置customRepositoryName。这是因为我正在使用XML映射,对于这个实体,我使用Annotations提供repositoryClass

再次感谢:)