2

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

我有一个实体客户,它可以有零个、一个或多个实体(也是客户)。当我使用 '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: {  }
4

1 回答 1

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
于 2012-11-05T13:55:39.783 回答