1

symfony プロジェクトに問題があります。
InnoDB テーブルを含む MySQL データベースがあります。
シンプルなツリーメニューを作成しようとしています:

スキーマ.yml

Menu:
  actAs:
    Timestampable:
      created:
        disabled: true
      updated:
        disabled: true
  columns:
    id: { type: integer, autoincrement: true, notnull: true, primary: true }
    name: { type: string(255), notnull: true }
    parent: { type: integer, notnull: false }
  relations:
    Parent:
      alias: parentItem
      foreignAlias: childrens
      class: Menu
      local: parent
      foreign: id
      type: many-to-one
      onDelete: CASCADE

バックエンドで要素を作成した後、data:dumpこのコードを実行して取得します

備品:

Menu:
  Menu_1:
    name: 'Parent'
  Menu_2:
    parentItem: Menu_1
    name: 'Children'

走ろうとするとアイテム同士の関係が崩れてしまう

何が悪いのかわかりません。

編集:

前:

| id | name     | parent |
| 1  | Parent   | NULL   |
| 2  | Children | 1      |

| id | name     | parent |
| 1  | Parent   | NULL   |
| 2  | Children | 0      |
4

1 に答える 1

1

リレーションのタイプは1つで、リレーションのforeignTypeは多数だと思います:

Menu:
  actAs:
    Timestampable:
      created:
        disabled: true
      updated:
        disabled: true
  columns:
    id: { type: integer, autoincrement: true, notnull: true, primary: true }
    name: { type: string(255), notnull: true }
    parent: { type: integer, notnull: false }
  relations:
    Parent:
      alias: parentItem
      class: Menu
      local: parent
      foreign: id
      type: one
      foreignAlias: childrens
      foreignType: many
      onDelete: CASCADE
于 2012-11-23T14:18:28.017 に答える