Php Doctrine2实体管理器在命名空间中找不到自定义存储库类

Php Doctrine2实体管理器在命名空间中找不到自定义存储库类,php,symfony,doctrine-orm,pagination,Php,Symfony,Doctrine Orm,Pagination,我有Doctrine2 ORM的Silex设置。我正在尝试构建一个分页类,可以与实体一起使用。我很清楚Doctrine2中存在的现有分页类,但是因为这个项目是为了我的学校研究,所以我尝试自己创建这个组件 以下是访问此页面时出现的致命错误: 致命错误:在第689行的D:\web\Playerly solutions\vendor\doctrine\orm\lib\doctrine\orm\EntityManager.php中找不到类“Playerly\Model\Helper\UserReposi

我有Doctrine2 ORM的Silex设置。我正在尝试构建一个分页类,可以与实体一起使用。我很清楚Doctrine2中存在的现有分页类,但是因为这个项目是为了我的学校研究,所以我尝试自己创建这个组件

以下是访问此页面时出现的致命错误:

致命错误:在第689行的D:\web\Playerly solutions\vendor\doctrine\orm\lib\doctrine\orm\EntityManager.php中找不到类“Playerly\Model\Helper\UserRepository”

我使用两种方法count和paginate定义了一个名为PaginateableInterface的接口。我接着定义了一个自定义的EntityRepository类,该类扩展了条令\ORM\EntityRepository。下面是我的个人简历

<?php

 namespace PlayGround\Service\Doctrine;

 use Doctrine\ORM\EntityRepository as ParentEntityRepository;

 class EntityRepository extends ParentEntityRepository{

   public function count(){

      $em       = $this->getEntityManager();

      $builder  = $em->createQueryBuilder();
      /**
      * ToDo: @entity
      *
      * Still need to find a better way of getting entity class name.
      */
      $entity   = $em->getClassMetadata(get_class(__CLASS__))->getName();

      //Dynamically get a count of records on any entity we happen to call this on.
      $builder->select($builder->expr()->count('e'))
       ->from($entity, 'e');

      $query   = $builder->getQuery();

      //Try-Catch block ommitted
      return $query->getSingleScalarResult();
    }
  }
编辑:

下面是我在D:\web\PlayerdSolutions中找到的文件结构


您声明了两次
@ORM\Entity
。一次使用
repositoryClass
,一次不使用。移除其中一个,但不包括:

@ORM\Entity
留下这个:

@ORM\Entity(repositoryClass="PlayGround\Model\Helper\UserRepository")
@ORM\HasLifecycleCallbacks
应在声明时不带括号
()

还要确保
EntityRepository
位于正确的命名空间和相应的文件夹中:

您的名称空间是
playway\Model\Helper\UserRepository
,这意味着文件应该位于文件夹
playway\Model\Helper
中,类文件名应该是
UserRepository.php

修复并检查,如果仍然不起作用,请留下评论

更新: 您的
UserRepository
位于错误的模块中。现在在
应用程序中
应该在
游乐场中
文件应该在:

src/PlayGround/Model/Helper/UserRepository.php

这都是关于那个问题。

显然,这确实消耗了我的思维过程。我所做的只是指向@Witt指出的不正确的名称空间

我更改了用户实体中的注释条目,错误消失了

 <?php
   /** @ORM\Entity(repositoryClass="Application\Model\Helper\UserRepository") */

您用来存储类的路径是什么?谢谢@Wilt。我刚刚应用了你的建议,但仍然犯了同样的致命错误。我已将我的文件结构包含在问题的编辑部分。提前谢谢。@LuyandaSiko阅读了我的更新。。。您遇到了名称空间问题。感谢@Witt让我的大脑恢复了活力。我解决了。
@ORM\Entity
@ORM\Entity(repositoryClass="PlayGround\Model\Helper\UserRepository")
src/PlayGround/Model/Helper/UserRepository.php
 <?php
   /** @ORM\Entity(repositoryClass="Application\Model\Helper\UserRepository") */