生成的PHP类中缺少Symfony/Doctrine2/YAML映射

生成的PHP类中缺少Symfony/Doctrine2/YAML映射,symfony,doctrine-orm,yaml,Symfony,Doctrine Orm,Yaml,我试图用Doctrine 2+Symfony和双向YAML映射创建这三个类 一切正常,没有错误,但生成的实体只包含用户实体的两个前集合声明。该实体也没有用于缺少链接的添加、删除和获取函数 我尝试分别生成每个映射,效果很好 这是教义的局限吗 生成的MyBundle\Entity\User.php构造函数(缺少令牌类的ArrayCollection): Collection.orm.yml: MyBundle\Entity\Collection: type: entity table: co

我试图用Doctrine 2+Symfony和双向YAML映射创建这三个类

一切正常,没有错误,但生成的实体只包含用户实体的两个前集合声明。该实体也没有用于缺少链接的添加、删除和获取函数

我尝试分别生成每个映射,效果很好

这是教义的局限吗

生成的MyBundle\Entity\User.php构造函数(缺少令牌类的ArrayCollection):

Collection.orm.yml:

MyBundle\Entity\Collection:
  type: entity
  table: collection
  id:
    collection_id:
      type: integer
      generator:
        strategy: AUTO 
  fields:
    ...
  manyToOne:
    owner: 
      targetEntity: User
      inversedBy: owned
      joinColumn:
        name: user_id
        referencedColumnName: user_id    
  manyToMany:
    shares:
      targetEntity: User
      inversedBy: shared
      joinTable:
        name: shares
        joinColumns:
          collection_id:
            referencedColumnName: collection_id
        inverseJoinColumns:
          user_id:
            referencedColumnName: user_id
MyBundle\Entity\Token:
  type: entity
  table: token
  id:
    token_id:
      type: integer
      generator:
        strategy: AUTO 
  fields:
    ...
  manyToOne:
    user: 
      targetEntity: User
      inversedBy: tokens
      joinColumn:
        name: user_id
        referencedColumnName: user_id
Token.orm.yml:

MyBundle\Entity\Collection:
  type: entity
  table: collection
  id:
    collection_id:
      type: integer
      generator:
        strategy: AUTO 
  fields:
    ...
  manyToOne:
    owner: 
      targetEntity: User
      inversedBy: owned
      joinColumn:
        name: user_id
        referencedColumnName: user_id    
  manyToMany:
    shares:
      targetEntity: User
      inversedBy: shared
      joinTable:
        name: shares
        joinColumns:
          collection_id:
            referencedColumnName: collection_id
        inverseJoinColumns:
          user_id:
            referencedColumnName: user_id
MyBundle\Entity\Token:
  type: entity
  table: token
  id:
    token_id:
      type: integer
      generator:
        strategy: AUTO 
  fields:
    ...
  manyToOne:
    user: 
      targetEntity: User
      inversedBy: tokens
      joinColumn:
        name: user_id
        referencedColumnName: user_id
User.orm.yml:

MyBundle\Entity\User:
  type: entity
  table: user
  id:
    user_id:
      type: integer
      generator:
        strategy: AUTO 
  fields:
    ...
  oneToMany:
    owned:
      targetEntity: Collection
      mappedBy: owner
  oneToMany:
    tokens:
      targetEntity: Token
      mappedBy: user
  manyToMany:
    shared:
      targetEntity: Collection
      mappedBy: shares

Yaml不处理重复的密钥
oneToMany
应定义一次

MyBundle\Entity\User:
  type: entity
  table: user
  id:
    user_id:
      type: integer
      generator:
        strategy: AUTO 
  fields:
    ...
  oneToMany:
    owned:
      targetEntity: Collection
      mappedBy: owner
    tokens:
      targetEntity: Token
      mappedBy: user
  manyToMany:
    shared:
      targetEntity: Collection
      mappedBy: shares

完美的除了正确的方法外,我试过用各种方法来做这件事。非常感谢。