Отношения, созданные с помощью YAML в Symfony (с помощью Doctrine), не заполняются в базе данных MySQL - PullRequest
0 голосов
/ 17 марта 2011

Я новичок в Symfony, пытаюсь создать структуру базы данных с помощью build-модели, а затем build-sql.

Все таблицы появляются в базе данных, однако отношения, отличные от простых отношений один ко многим, не являютсясоздан.

Например, у меня есть компания, хранящая таблицы, они могут быть как поставщиками, так и клиентами, и у меня есть другая таблица, хранящая отношения клиент / поставщик.

Identifier:
  actAs: [Timestampable]
  tableName: identifier
  columns:
    id:
      type: integer(20)
      fixed: false
      unsigned: false
      primary: true
      autoincrement: true
  relations:
    Suppliers:
      class: Identifier
      local: customer_id
      foreign: supplier_id
      refClass: CustomerSupplier
      foreignAlias: Customers
      onDelete: CASCADE
    Customers:
      class: Identifier
      local: supplier_id
      foreign: customer_id
      refClass: CustomerSupplier
      foreignAlias: Suppliers
      onDelete: CASCADE
CustomerSupplier:
  actAs: [Timestampable]
  tableName: customerSupplier
  columns:
    id:
      type: integer(20)
      fixed: false
      unsigned: false
      primary: true
      autoincrement: true
    customer_id:
      type: integer(20)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
    supplier_id:
      type: integer(20)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false

Один-к-одномуотношения также не создаются:

IdentifierExtCompany:
  actAs: [Timestampable]
  tableName: identifierExtCompany
  columns:
    identifier_id:
      type: integer(20)
      fixed: false
      unsigned: false
      primary: true
      autoincrement: true
  relations:
    Identifier:
      local: identifier_id
      foreign: id
      onDelete: CASCADE
      foreignType: one
      type: one

Все эти отношения не появляются в базе данных, когда я запускаю запрос sql, сгенерированный build-sql.

Не могли бы вы помочь мне определить, чтонеправильно в моем файле yaml?Заранее спасибо

1 Ответ

0 голосов
/ 17 марта 2011

Например, у меня есть таблица, в которой хранятся компании, они могут быть как поставщиками, так и клиентами, а у меня есть другая таблица, в которой хранятся отношения клиент / поставщик.

Похоже, вам нужно определить отношениядля CustomerSupplier тоже:

relations:
  IdentifierAlias:
    class: Identifier
    local: identifier_id
    onDelete: CASCADE
  SupplierAlias:
    class: Supplier
    local: supplier_id
    onDelete: CASCADE

Отношения "один к одному" также не создаются

Попробуйте указать атрибут class в отношениях и установите его вIdentifier.

Надеюсь, это поможет.

...