2

私は教義で Symfony2 を使用していますが、1 対 1/1 対多の自己参照関係を除いて関係に問題はありません。

ゼロ、1 つ、または複数のエンティティ (顧客でもある) を持つことができるエンティティ Customer があります。「doctrine:generate:entities BundleName」を使用してエンティティを生成すると、Entity Customer.php に変数「$entities」しかなく、変数「$mother_house」はありません。また、生成された移行 (doctrine:migrations:diff を使用) には、新しいフィールド '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

私は間違いを見つけました。

同じタイプ (多対 1、1 対多など) の関係はすべて、「manyToOne」、「oneToMany」などの 1 つのフィールドにグループ化する必要があります。

だから変えるしかなかった

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 に答える