Cakephpで複数の外部キーを設定するときのメモ。
複数の外部キーといっても、同じテーブルに他の同じテーブルの外部キーを複数設定する場合です。つまり、operationsテーブルに2つのoperatorsテーブルのキーがある場合、(operator_id、evaluator_id)をoperationsテーブルに設定します。複数あるので、外部キーと自動的に認識してくれません(ViewではそのままIDとして表示)。
1. Operationsテーブルのモデルに設定
app]$ vi Model/Operation.php
var $belongsTo = array(
'Operator' =>array('className' => 'Operator','foreignKey' => 'operator'),
'Evaluator' =>array('className' => 'Operator','foreignKey' => 'evaluator')
);
あとはもう一度operationsテーブルのviewだけbakeしとけば、認識されるようになります。
2015/12/25追記
2.リレーション側でのbake
OperatorとEvaluatorキーを使う側のbakeではリレーションが自動認識されないので、自分で設定する必要があります。ひとまずOperatorキーがリレーションとして認識されたかったので設定しました。Operatorsテーブルのbakeです。
このあとC,Vと続けてBakeします。
参考
http://www.asterisk-works.jp/wiki/index.php/Bake%E3%83%A1%E3%83%A2
0 件のコメント:
コメントを投稿