キー以外のフィールドでリレーションを作成するのに問題があります。私の問題は、関係の「on」セクションで指定された一致する値だけではなく、「HAS_MANY」テーブルのすべてのレコードが返されることです。
Table: customer
- id (PK)
- name
- reference_key
Table: visit
- id
- system_id
- reference_key
Model: Customer relations...
'visits'=>array(self::HAS_MANY, 'Visit', '', 'on'=>'reference_key=visits.reference_key'),
Model: Visit relations...
'customer'=>array(self::BELONGS_TO, 'Customer', 'reference_key'),
$dataSet = $data->visits(); // this all records from visit table instead of visits matching on the reference key.
foreach($dataSet as $visit){
echo 'visit key: '.$visit->reference_key.'; ';
}
「エイリアス」を使用すると、あいまいな列名の問題が解決されます。ただし、一致しない結果が得られます。
どんな助けでも大歓迎です。ありがとう。