0

2 つのテーブルがClientesあり、Serviciosそれらには関係があります。たとえば、addAction フォームを使用しているときに存在するすべてのサービスではなく、doctrine がクライアントにそのサービスのみを返すようにします。

`Client: Foo

     Services:
         Bar
         Bar2
         Bar3
Client: Foo2

     Services:
         Bar2
         Bar7
Client: Foo3

     Services:
         Bar`

client FooX サービスが割り当てられていることを Symfony2 や Doctrine に伝える方法がわかりません...

これはドクトリンymlです

Pge\IncidenciasBundle\Entity\Clientes:
    type: entity
    table: clientes
    id:
        id:
          type: integer
          unsigned: false
          nullable: false
          generator:
              strategy: IDENTITY
    fields:
        nombre:
            type: string
            length: 250
            fixed: false
            nullable: true
    manyToOne:
        servicio:
            targetEntity: Servicios
            cascade: {  }
            mappedBy: null
            inversedBy: cliente
            joinColumns:
                servicio_id:
                    referencedColumnName: id
            orphanRemoval: false
    oneToMany:
        incidencia:
            targetEntity: Incidencias
            cascade: {  }
            mappedBy: cliente
            inversedBy: null
            orphanRemoval: false
    lifecycleCallbacks: {  }
Pge\IncidenciasBundle\Entity\Servicios:
    type: entity
    table: servicios
    id:
        id:
          type: integer
          unsigned: false
          nullable: false
          generator:
              strategy: IDENTITY
    fields:
        nombre:
            type: string
            length: 250
            fixed: false
            nullable: true
    oneToMany:
        cliente:
            targetEntity: Clientes
            cascade: {  }
            mappedBy: servicio
            inversedBy: null
            orphanRemoval: false
        incidencia:
            targetEntity: Incidencias
            cascade: {  }
            mappedBy: servicio
            inversedBy: null
            orphanRemoval: false
    lifecycleCallbacks: {  }
4

1 に答える 1

1

Doctrine はどの列が主キーになるべきかを判断できません。

yaml ファイルで ID を 1 つ上のレベルに移動します。

table: servicios

id:
    id:
        type: integer
        unsigned: false
        nullable: false
        generator:
            strategy: IDENTITY
fields:

次に app/console doctrine:schema:create --dump-sql を実行します

そして、あなたが得るものを見てください。他のエラーがあるかもしれません。私は本当に近くに見えませんでした。必要に応じて、単純な yaml ファイルから始めて、一度に 1 つのフィールドを追加します。unsigned も true にしたいのではないかと思います。

于 2013-08-16T20:15:10.447 に答える