Hi,
This is very annoying alias problem i am facing since i started working on Yii. Add created a topic in Discussions but could not find any solution.
This is my controller code, i have this kind of code in many controllers,
$criteria = new CDbCriteria(array(
'condition' => 'u.firstname LIKE "%' . $_GET['term'] . '%"',
'select' => 'u.firstname, u.user_id',
'join' => 'INNER JOIN users_department ud ON ud.user_id = u.user_id',
'group' => 'u.user_id',
'alias' => 'u'
));
$modelUsers = Users::model()->findAll($criteria);
This is my default scope in Users Model
public function defaultScope() {
return array(
'condition' => $this->getTableAlias(FALSE, FALSE) . '.active="Y"',
);
}
This result me with an mysql error t.active is an unknown column.
if i remove ‘$this->getTableAlias(FALSE, FALSE)’ from default scope it will show me ambiguous column mysql error for user_id.
Even if i specified ‘u’ as the alias in CDbCriteria, in model alias is ‘t’.
$this->getTableAlias(FALSE, FALSE) function doens not return alias from CDbCriteria instead it defaults to ‘t’. WHY ?
Regards,
Praveen J.