У меня есть две таблицы компании и пользователей. В пользовательской таблице есть поле с именем company_id, которое связывает пользователей с компанией. Но не все пользователи будут связаны с компанией. Будут пользователи без идентификатора компании. Теперь мне нужно перечислить пользователей в виде сетки, используя отношение. Я связал компанию с пользователями, использующими отношения в yii.
public function relations() {
return array('company' => array(self::BELONGS_TO, 'Company', 'company_id'));
}
Но он показал ошибку, когда я пытался отобразить название компании каждого пользователя. Я думаю, что проблема с пользователями, которые не связаны с компанией. Я искал ответы, придумал операцию левого соединения при установлении связи.
public function relations() {
return array('company' => array(self::BELONGS_TO, 'Company', 'company_id',
'joinType' => 'LEFT JOIN',
'on' => "(company.id=company_id)"));
}
Но это тоже дает мне ошибку.
CDbCommand не удалось выполнить инструкцию SQL: SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец «company_id» в «предложении where». Выполненный оператор SQL был: SELECT
company
,id
КАКt1_c0
,company
,name
КАКt1_c1
,company
,telephone
КАКt1_c2
,company
,description
КАКt1_c3
,company
,address
КАКt1_c4
,company
,status
КАКt1_c5
ОТcompany
company
ГДЕ ((company.id = company_id)) И (company
,id
=: Ypl0)
Пожалуйста, помогите мне в этом вопросе. Я новичок в YII.
Заранее спасибо.
Пожалуйста, пройдите по ссылкам ниже, чтобы понять, как работают отношения Yii:
http://www.yiiframework.com/wiki/181/relations-belongs_to-versus-has_one/
Других решений пока нет …