Php 在symfony2中找不到存储库实体
我正在用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
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,找到了我的实体。非常感谢。