0

同様の問題を投稿しましたが、解決できませんでした。ユーザーとグループのリレーショナル データベースを作成しましたが、何らかの理由でフィクスチャを含むテスト データを正しく挿入できません。スキーマのサンプルを次に示します。

User:
  actAs: { Timestampable: ~ }
  columns:
    name: { type: string(255), notnull: true }
    email: { type: string(255), notnull: true, unique: true }
    nickname: { type: string(255), unique: true }
    password: { type: string(300), notnull: true }
    image: { type: string(255) }

Group:
  actAs: { Timestampable: ~ }
  columns:
    name: { type: string(500), notnull: true }
    image: { type: string(255) }
    type: { type: string(255), notnull: true }
    created_by_id: { type: integer }
  relations: 
    User: { onDelete: SET NULL, class: User, local: created_by_id, foreign: id, foreignAlias: groups_created }

FanOf:
  actAs: { Timestampable: ~ }
  columns:
    user_id: { type: integer, primary: true }
    group_id: { type: integer, primary: true }
  relations:
    User: { onDelete: CASCADE, local: user_id, foreign: id, foreignAlias: fanhood }
    Group: { onDelete: CASCADE, local: group_id, foreign: id, foreignAlias: fanhood }

そして、これは私が入力しようとするデータです:

User:
  user1:
    name: Danny
    email: comedy19@gmail.com
    nickname: danny
    password: f05050400c5e586fa6629ef497be

Group:
  group1:
    name: Mets
    type: sports

FanOf:
  fans1:
    user_id: user1
    group_id: group1

このエラーが発生し続けます:

  SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`krowdd`.`fan_of`, CONSTRAINT `fan_of_user_id_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE)  

ユーザーとグループは明らかに「ファン」の前に作成されているのに、なぜこのエラーが発生するのですか??

ありがとう!

4

1 に答える 1

5

あなたのフィクスチャファイルで:

FanOf:
  fans1:
    user_id: user1
    group_id: group1

する必要があります

FanOf:
  fans1:
    User: user1
    Group: group1

とを使用するuser_idgroup_id、Doctrine は整数値を期待します。リレーション名を使用すると、作成した「オブジェクト」をフィクスチャの別の場所に渡すことができます。

于 2010-05-31T10:19:57.417 に答える