sfGuardPlugin を使用しています。特に、「モニター」テーブルとの多対多の関係で使用している sfGuardGroup テーブルを使用しています (多対多のテーブルは ALERT と呼ばれます): これが私の schema.yml です:
Monitor:
tableName: monitor
actAs:
Timestampable: ~
columns:
id : {type: integer(4), primary: true, autoincrement: true}
label: {type: string(45)}
url: {type: string(80)}
frequency: {type: integer}
timeout: {type: integer}
method: {type: enum, values: [GET, POST]}
parameters: {type: string(255)}
Groups:
class: Groups
local: monitor_id
foreign: groups_id
refClass: Alert
Groups:
inheritance:
extends: sfGuardGroup
type: simple
relations:
Monitor:
class: Groups
local: id
foreign: monitor_id
refClass: Alert
Alert:
actAs:
Timestampable: ~
columns:
monitor_id: { type: integer(4), primary: true }
groups_id: { type: integer, primary: true }
relations:
Monitor:
foreignAlias: GroupMonitors
sfGuardGroup:
foreignAlias: GroupMonitors
すべてのことを構築するとき、私はこのエラーを受け取ります:
SQLSTATE[42000]: Syntax error or access violation: 1072 Key column 'sf_guard_g
roup_id' doesn't exist in table. Failing Query: "CREATE TABLE alert (monitor_id
INT, groups_id BIGINT, created_at DATETIME NOT NULL, updated_at DATETIME NOT NUL
L, INDEX sf_guard_group_id_idx (sf_guard_group_id), INDEX id_idx (id), PRIMARY K
EY(monitor_id, groups_id)) ENGINE = INNODB". Failing Query: CREATE TABLE alert (
monitor_id INT, groups_id BIGINT, created_at DATETIME NOT NULL, updated_at DATET
IME NOT NULL, INDEX sf_guard_group_id_idx (sf_guard_group_id), INDEX id_idx (id)
, PRIMARY KEY(monitor_id, groups_id)) ENGINE = INNODB
そこに何かアイデアはありますか?