0

理由はよくわかりませんが、Doctrineの整合性制約違反が発生します。

Schema.yml

User:
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    username:
      type: varchar(64)
      notnull: true
    email:
      type: varchar(128)
      notnull: true
    password:
      type: varchar(128)
      notnull: true
  relations:
    Websites:
      class: Website
      local: id
      foreign: owner
      type: many
      foreignType: one
      onDelete: CASCADE

Website:
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    active:
      type: bool
    owner:
      type: integer
      notnull: true
    plz:
      type: integer
      notnull: true
    longitude:
      type: double(10,6)
      notnull: true
    latitude:
      type: double(10,6)
      notnull: true
  relations:
    Owner:
      type: one
      foreignType: many
      class: User
      local: owner
      foreign: id

これが私のデータフィクスチャ(data.yml)です

Model_User:
  User_1:
    username: as
    email: as****.com
    password: *****

Model_Website:
  Website_1:
    active: true
    plz: 34222
    latitude: 13.12
    longitude: 3.56
    Owner: User_1
4

1 に答える 1

0

さて、私は問題を見つけました。このエラーの理由は、すでに Model_User を変更して属性 " owner " を追加した後、Doctrine が既存の属性をモデルに追加しようとしたためです。

簡単に言うと、yaml スキーマにも存在する変数をモデルに定義しないでください。

于 2010-05-28T15:08:16.457 に答える