【问题标题】:Doctrine2 Many-To-One self-referecing : parent not generatedDoctrine 多对一自引用:未生成父级
【发布时间】:2012-11-01 08:35:26
【问题描述】:

我将 Symfony2 与教义一起使用,除了一个多对一/一对多自引用关系外,其他关系没有任何问题。

我有一个实体 Customer,它可以有零个、一个或多个实体(也是 Customer)。当我使用 'doctrine:generate:entities BundleName' 生成实体时,我的 Entity Customer.php 中只有一个 var '$entities' 并且没有 var '$mother_house'。此外,生成的迁移(使用教义:迁移:差异)不包含创建新字段“mother_house_id”。

Customer.orm.yml 中的架构是这个:

Acme\Bundle\CustomerBundle\Entity\Customer:
    type: entity
    table: customer
    repositoryClass: Acme\Bundle\CustomerBundle\Entity\CustomerRepository
    fields:
        id:
            type: integer
            id: true
            generator:
                strategy: AUTO
        company_name:
            type: string
            length: 255
        reference:
            type: string
            length: '20'
        created_at:
            type: datetime

    oneToMany:
        entities:
            targetEntity: Customer
            mappedBy: mother_house

    manyToOne:
        mother_house:
            targetEntity: Customer
            inversedBy: entities
            joinColumn:
                mother_house_id:
                    referencedColumnName: id

    manyToOne:
        created_by:
            targetEntity: Acme\Bundle\UserBundle\Entity\User
            joinColumn: 
                created_by:
                     referencedColumnName: id
    lifecycleCallbacks: {  }

【问题讨论】:

    标签: symfony doctrine-orm self-reference


    【解决方案1】:

    我发现了我的错误。

    同一类型的所有关系(多对一、一对多等)必须分组在一个字段“manyToOne”、“oneToMany”等下。

    所以我只需要改变

    manyToOne:
        mother_house:
            targetEntity: Customer
            inversedBy: entities
            joinColumn:
                mother_house_id:
                    referencedColumnName: id
    
    manyToOne:
        created_by:
            targetEntity: Acme\Bundle\UserBundle\Entity\User
            joinColumn: 
                created_by:
                    referencedColumnName: id
    

    进入

    manyToOne:
        mother_house:
            targetEntity: Customer
            inversedBy: entities
            joinColumn:
                mother_house_id:
                    referencedColumnName: id
        created_by:
            targetEntity: Acme\Bundle\UserBundle\Entity\User
                joinColumn: 
                created_by:
                    referencedColumnName: id
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-29
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多