我有一个班级
/**
* @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!
我已经建立了很多其他定制回购和作品,我不知道这个错误。有没有人暗示这有什么不妥。
答案 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 {
它应该有效。