我是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