Отношения Yii в областях неосновного и неключевого ключа
У меня проблемы с созданием отношений по не ключевым областям. Моя проблема в том, что возвращаются все записи из таблицы 'HAS_MANY', а не только совпадающие значения, указанные в разделе 'on' отношения.
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.'; ';
}
Использование псевдонима решает проблему неоднозначных имен столбцов. Тем не менее, я получаю несоответствующие результаты.
Любая помощь приветствуется. Благодарю.
2 ответа
Пытаться
'visits'=>array(self::HAS_MANY, 'Visit', array('reference_key'=>'reference_key')),
После того, как отношения не заработали, я решил просто добавить метод для получения правильных результатов.
return Visit::model()->findAllByAttributes( array('visitor_key'=>$this->visitor_key) );
Это позаботится об этом. Спасибо!