Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在symfony2中找不到存储库实体_Php_Symfony_Doctrine Orm - Fatal编程技术网

Php 在symfony2中找不到存储库实体

Php 在symfony2中找不到存储库实体,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我正在用Symfony2开发两个项目,我开始编写第二个项目,我在表中搜索自定义函数时遇到了一些问题 这是我的网站实体 namespace Ad\SisBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * Sites * * @ORM\Table(name="sites") * @ORM\Entity(repositoryClass="Ad\SisBundle\Entity\SitesRepository") */ class S

我正在用Symfony2开发两个项目,我开始编写第二个项目,我在表中搜索自定义函数时遇到了一些问题

这是我的网站实体

namespace Ad\SisBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Sites
 *
 * @ORM\Table(name="sites")
 * @ORM\Entity(repositoryClass="Ad\SisBundle\Entity\SitesRepository")
 */
class Sites
{
namespace Ad\SisBundle\Entity;

use Doctrine\ORM\EntityRepository;

class SitesRepository extends EntityRepository
{
这是我的网站存储实体

namespace Ad\SisBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Sites
 *
 * @ORM\Table(name="sites")
 * @ORM\Entity(repositoryClass="Ad\SisBundle\Entity\SitesRepository")
 */
class Sites
{
namespace Ad\SisBundle\Entity;

use Doctrine\ORM\EntityRepository;

class SitesRepository extends EntityRepository
{
问题是我无法访问我在SitesRepository中创建的任何函数

我当时正在甩掉这个理论课,我看到了这个

EntityRepository {#309 ▼
  #_entityName: "Ad\SisBundle\Entity\Sites"
  #_em: EntityManager {#289 …10}
  #_class: ClassMetadata {#298 ▼
    +name: "Ad\SisBundle\Entity\Sites"
    +namespace: "Ad\SisBundle\Entity"
    +rootEntityName: "Ad\SisBundle\Entity\Sites"
    +customGeneratorDefinition: null
    +customRepositoryClassName: null
    +isMappedSuperclass: false
    +parentClasses: []
    +subClasses: []
    +namedQueries: []
    +namedNativeQueries: []
    +sqlResultSetMappings: []
    +identifier: array:1 [▶]
    +inheritanceType: 1
    +generatorType: 4
    +fieldMappings: array:5 [▶]
    +fieldNames: array:5 [▶]
    +columnNames: array:5 [▶]
    +discriminatorValue: null
    +discriminatorMap: []
    +discriminatorColumn: null
    +table: array:1 [▶]
    +lifecycleCallbacks: []
    +entityListeners: []
    +associationMappings: []
    +isIdentifierComposite: false
    +containsForeignIdentifier: false
    +idGenerator: IdentityGenerator {#306 ▶}
    +sequenceGeneratorDefinition: null
    +tableGeneratorDefinition: null
    +changeTrackingPolicy: 1
    +isVersioned: null
    +versionField: null
    +reflClass: ReflectionClass {#307 ▶}
    +isReadOnly: false
    #namingStrategy: DefaultNamingStrategy {#276}
    +reflFields: array:5 [▶]
    -_prototype: null
  }
}
所以我去了我的第一个项目,它工作得很好,做了同样的事情

ScheduleRepository {#1931 ▼
  #_entityName: "ApplicationBundle\Entity\Schedule"
  #_em: EntityManager {#137 …10}
  #_class: ClassMetadata {#1825 ▼
    +name: "ApplicationBundle\Entity\Schedule"
    +namespace: "ApplicationBundle\Entity"
    +rootEntityName: "ApplicationBundle\Entity\Schedule"
    +customGeneratorDefinition: null
    +customRepositoryClassName: "ApplicationBundle\Entity\ScheduleRepository"
    +isMappedSuperclass: false
    +parentClasses: []
    +subClasses: []
    +namedQueries: []
    +namedNativeQueries: []
    +sqlResultSetMappings: []
    +identifier: array:1 [▶]
    +inheritanceType: 1
    +generatorType: 4
    +fieldMappings: array:3 [▶]
    +fieldNames: array:3 [▶]
    +columnNames: array:3 [▶]
    +discriminatorValue: null
    +discriminatorMap: []
    +discriminatorColumn: null
    +table: array:2 [▶]
    +lifecycleCallbacks: array:2 [▶]
    +entityListeners: []
    +associationMappings: array:2 [▶]
    +isIdentifierComposite: false
    +containsForeignIdentifier: false
    +idGenerator: IdentityGenerator {#1852 ▶}
    +sequenceGeneratorDefinition: null
    +tableGeneratorDefinition: null
    +changeTrackingPolicy: 1
    +isVersioned: null
    +versionField: null
    +reflClass: ReflectionClass {#1840 ▶}
    +isReadOnly: false
    #namingStrategy: DefaultNamingStrategy {#119}
    +reflFields: array:5 [▶]
    -_prototype: null
  }
}
在project#1的计划实体中,我填写了customRepositoryClassName,但在我的站点实体中没有填写。为什么?两者都使用相同版本的条令和符号


我看到项目1中的转储是转储ScheduleRepository,项目2是转储EntityRepository。也许这就是问题所在

项目#1转储:

项目#2转储:


项目#2中的实体是使用以下方法创建的:

这是两个项目之间唯一的区别


感谢您的帮助。

在非工作项目的Resource/config/doctor下查看。我猜您会发现一些orm文件,这些文件是您在某个时候生成的,但您忘记了。它们会覆盖你的注释。完美@Cerad,我做到了,而且效果很好。我删除了所有文件orm.xml,找到了我的实体。非常感谢。