我是yii
的新會員。我有三個型號機型
時,即時通訊選址的下拉我需要的用戶屬於該站點yii的關係錯誤
Site(id,name)
User(id,name,..)
UserSite(id,user_id,site_id)
我需要的是
在用戶模式的關係是 'userSites' => array(self::BELONGS_TO, 'UserSite', 'id'),
而搜索功能用戶模型是,
public function search($sid)
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id);
$criteria->compare('customer_id',$this->customer_id,true);
$criteria->compare('email',$this->email,true);
$criteria->compare('password',$this->password,true);
$criteria->compare('name',$this->name,true);
$criteria->compare('company',$this->company,true);
$criteria->compare('country',$this->country,true);
$criteria->compare('date_added',$this->date_added,true);
$criteria->compare('expiry_date',$this->expiry_date,true);
if($sid!=null)
{
$criteria->with = array('userSites');
$criteria->addCondition('userSites.site_id='.$sid);
}
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
這裏發生的是顯示用戶喜歡(user.id=user_site.id)
但實際上我需要(user.id=user_site.user_id)
。
現在這種關係'userSites' => array(self::BELONGS_TO, 'UserSite', 'id'),
返回UserSite->id
什麼,我需要它必須返回UserSite->User_id
請有人幫我解決這個問題..
我已經嘗試過,當時它的獲取錯誤CDbCommand未能執行SQL語句:SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'userSites.site_id'。執行的SQL語句是:SELECT't'.'id' AS't0_c0','t'.'customer_id' AS't0_c1','t'.'email' AS''t0_c2','t'.password' as't0_c3','t'.namename' as't0_c4','t'.'company' as't0_c5','t'.country' as as't0_c6','t'.'date_added' as' t0_c7','t'.expiry_date' AS't0_c8' FROM'user'' t' WHERE(userSites.site_id = 4)LIMIT 100 – Salini
我已經編輯了我的答案。 – topher
嘿它固定的代碼是$ criteria-> together = true;謝謝.. – Salini