【问题标题】:Symfony Custom Repository class not workingSymfony 自定义存储库类不起作用
【发布时间】:2016-03-02 12:29:58
【问题描述】:

我有课

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

和 repo 类

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!

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

【问题讨论】:

  • 可能有两次@ORM\Entity(实际上是三次)是问题所在。我认为您应该清理 RegistrationNumber 的注释并重试。

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


【解决方案1】:

正如评论中所说,

改变:

/**
* @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 {

它应该可以工作。

【讨论】:

  • 是的,repo 工作正常,但只是检查了监听器没有工作。
  • 我说的是听者。如果在您提出问题之前它不起作用,那么您的实际问题与此问题之间没有关系。多看doc,你会让它工作的。祝你好运
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 2022-01-25
  • 2019-02-02
  • 1970-01-01
  • 2017-08-10
  • 1970-01-01
相关资源
最近更新 更多