我有兩個表menus
和lang_menus
。我Menus
模型如下:當使用findAll時Yii AR加入不工作
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'menulanguages'=>array(self::HAS_MANY, 'MenuLangs', 'menuId'),
);
}
...
public function getMenus(){
$criteria = new CDbCriteria();
$criteria->condition = "t.clientId = ".Yii::app()->user->clientId." AND menulanguages.languageId = ".Yii::app()->user->userlanguage;
$count = Menus::model()->with('menulanguages')->count($criteria);
$pages=new CPagination($count);
//Results per page
$pages->pageSize=10;
$pages->applyLimit($criteria);
$menus = Menus::model()->with('menulanguages')->findAll($criteria);
return array('menus' => $menus, 'paging' => $pages);
}
這是引發錯誤Unknown column 'menulanguages.languageId'
。 錯誤在線$menus = Menus::model()->with('menulanguages')->findAll($criteria);
。
令人驚訝的是,我正確地獲得了變量$count
的值。
在查看日誌,我可以看到正在運行的查詢的findAll SQL查詢是:
SELECT `t`.`id` AS `t0_c0`, `t`.`clientId` AS `t0_c1`, `t`.`restaurantId` AS `t0_c2` FROM `posif_menus` `t` WHERE (t.clientId = 1 AND menulanguages.languageId = 2) LIMIT 10
這意味着加入並沒有發生。鑑於正確的連接查詢正在運行計數值。難道我做錯了什麼 ? 請幫忙。
這應該工作.. –
謝謝。它運作良好。 – ajaybc
很樂意幫忙... –