我寫了一個函數,該函數應該返回userId的一組俱樂部。我不知道爲什麼當我添加where(Model_ClubUsers::$USERS_ID,$userId)
到dsql()
它沒有設置條件,我不得不使用addCondition()
,但我只需要在這個功能。有沒有辦法在函數返回之前刪除條件?如何刪除模型條件?
function getUserClubs($userId){
$columns = array('id',self::$NAME,self::$LOGO_NAME,self::$DESC);
$this->addRelatedEntity('club_users', 'club_users', Model_ClubUsers::$CLUBS_ID, 'inner', 'related');
$this->addField(Model_ClubUsers::$USERS_ID)->relEntity('club_users');
$aAliasedColumns = $this->getAliasedColumns($columns, $this->entity_code);
$this->addCondition(Model_ClubUsers::$USERS_ID,$userId);
$rows = $this->dsql()->field($aAliasedColumns)->do_getAll();
$aResult = array() ;
foreach($rows as $key => $value){
foreach($value as $vKey => $vVal){
if($columns[$vKey]=='id'){
$aRow['key'] = $vVal;
}else if($columns[$vKey]==self::$LOGO_NAME){
$aRow[$columns[$vKey]] = self::$CLUBS_LOGO_PATH.$vVal;
}
else {
$aRow[$columns[$vKey]] = $vVal;
}
}
$aResult[] = $aRow;
}
return $aResult;
}
addCondition()放置在模型的init()函數中,將始終執行並且可以被視爲全局條件。如果你在一個函數中手動添加條件,那麼它不會是全局的。調用dsql()將返回與模型無關的dsql()對象。隨後調用where()只會影響該對象。 – romaninsh