[Symfony1.4] 同じテーブルのカラムへの複数リレーションを持たせる方法
Symfony1.4にて、schema.yml を作成しているときに、同じテーブルのカラムへの複数リレーションを持たせるのに苦労したのでメモ。
本の情報を登録したユーザと変更したユーザの情報を持つために、registry_user_id と edit_user_id というレコードを Book テーブルに持たせています。
それぞれ、User テーブルのid とリレーションを持たせたいのですが、下記のように書くと、後ろの edit_user_id しかリレーションを持てません。
Book: actAs: Timestampable: ~ Sluggable: ~ columns: . . registry_user_id: type: integer notnull: true edit_user_id: type: integer . . relations: User: onDelete: CASCADE local: registry_user_id type: one alias: RegistryUser foreign: id foreignType: one User: onDelete: CASCADE local: edit_user_id type: one alias: EditUser foreign: id foreignType: one |
これを下記のように、クラス名を直接指定するのではなく、それぞれに名前を持たせて class: User と指定すればOKです。
RegistryUser: onDelete: CASCADE class: User local: registry_user_id type: one foreign: id foreignType: one EditUser: onDelete: CASCADE class: User local: edit_user_id type: one foreign: id foreignType: one |
以上です。