2016-03-02 77 views
2

我有一个类Symfony的自定义库类工作不

/** 
* @ORM\Table(name="registration_number") 
* @ORM\Entity 
* @ORM\Entity(repositoryClass="PNC\MISDashboardBundle\Repositories\RegistrationNumberRepository") 
* @ORM\HasLifecycleCallbacks 
* @ORM\[email protected]({"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!

我已经建立了很多其他的自定义回购和作品,我不知道这个错误。有没有人提示这有什么问题。

+3

也许有'@ORM \ Entity'两次(实际上是三次)是问题所在。我认为你应该清理“RegistrationNumber”的注释并重试。 – Yoshi

回答

2

正如评论所说,

变化:

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

要:

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

,它应该工作。

+0

通过这样做,事件监听器不能正常工作。 –

+0

之前是否工作? – chalasr

+0

是的,回购工作正常,但只是检查了听者不工作。 –