クライアント、タスク、タスクステータス(各クライアントのタスクを照合するため)の3つのモデルがあります。
Model_Task
protected static $_properties = array(
'id',
'name',
'created_at',
'updated_at',
);
Model_Client
protected static $_properties = array(
'id',
'name',
'created_at',
'updated_at',
);
Model_Taskstatus
protected static $_properties = array(
'id',
'client',
'task',
'created_at',
'updated_at',
);
Model_Taskに以下を追加しました
protected static $_has_many = array(
'taskstatuses' => array(
'key_from' => 'id',
'model_to' => 'Model_Taskstatus',
'key_to' => 'task',
'cascade_save' => true,
'cascade_delete' => false,
)
);
Model_Client
protected static $_has_many = array(
'taskstatuses' => array(
'key_from' => 'id',
'model_to' => 'Model_Taskstatus',
'key_to' => 'client',
'cascade_save' => true,
'cascade_delete' => false,
)
);
Model_Taskstatus
protected static $_belongs_to = array(
'client' => array(
'key_from' => 'client',
'model_to' => 'Model_Client',
'key_to' => 'id',
'cascade_save' => true,
'cascade_delete' => false,
),
'task' => array(
'key_from' => 'task',
'model_to' => 'Model_Task',
'key_to' => 'id',
'cascade_save' => true,
'cascade_delete' => false,
)
);
taskstatusがクライアントフィールドをクライアントモデルにリンクし、タスクフィールドをタスクモデルにリンクしたいのですが、ユーザーがクライアントまたはタスクモデルにない値のタスクを(id経由で)挿入すると、エラーが表示されます。ただし、機能しません(clientstatusに、クライアントテーブルとタスクテーブルに存在しないクライアントのIDとタスクのIDの値を追加できます。