Symfony Custom Repository类无法正常工作

时间:2016-03-02 12:29:58

标签: symfony doctrine-orm repository-pattern query-builder

我有一个班级

/**
* @ORM\Table(name="registration_number")
* @ORM\Entity
* @ORM\Entity(repositoryClass="PNC\MISDashboardBundle\Repositories\RegistrationNumberRepository")
* @ORM\HasLifecycleCallbacks
* @ORM\Entity@EntityListeners({"RegistrationNumberListener"})
*/
class RegistrationNumber {
}

和回购类

namespace PNC\MISDashboardBundle\Repositories;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\NoResultException;

/**
 * RegistrationNumberRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class RegistrationNumberRepository extends EntityRepository {

    public function findByTotalMatches($keyword)
    {
        /* your awesome code block */
        return 34;
    }
}

我以这种方式调用方法;

$check = $em->getRepository('PNCMISDashboardBundle:RegistrationNumber')
                                            ->findTotalMatches(5);

但它说的是;

  

未定义的方法' findTotalMatches'。方法名称必须以   findBy或findOneBy!

我已经建立了很多其他定制回购和作品,我不知道这个错误。有没有人暗示这有什么不妥。

1 个答案:

答案 0 :(得分:3)

如评论所述,

更改:

/**
* @ORM\Table(name="registration_number")
* @ORM\Entity
* @ORM\Entity(repositoryClass="PNC\MISDashboardBundle\Repositories\RegistrationNumberRepository")
* @ORM\HasLifecycleCallbacks
* @ORM\Entity@EntityListeners({"RegistrationNumberListener"})
*/
class RegistrationNumber {

致:

/**
* @ORM\Table(name="registration_number")
* @ORM\Entity(repositoryClass="PNC\MISDashboardBundle\Repositories\RegistrationNumberRepository")
* @ORM\HasLifecycleCallbacks
* @ORM\EntityListeners({"RegistrationNumberListener"})
*/
class RegistrationNumber {

它应该有效。