Activerecord Yii AR,选择有条件的相关表格

Activerecord Yii AR,选择有条件的相关表格,activerecord,yii,Activerecord,Yii,我想选择所有项目,其中“'status'=>array('register','vote','selected')”和pvotes其中的“user_id=”。Yii::app()->user->id”。但是这段代码选择了projects其中的“pvotes.user_id=”.Yii::app()->user->id”和“'status'=>array('register','vote','selected')” 项目: $projects = Project::model()->with

我想选择所有
项目,其中“'status'=>array('register','vote','selected')”和
pvotes
其中的“user_id=”。Yii::app()->user->id”。但是这段代码选择了
projects
其中的“pvotes.user_id=”.Yii::app()->user->id”和“'status'=>array('register','vote','selected')”

项目:

$projects = Project::model()->with(array(
    'pvotes' => array(
          'condition'=>'pvotes.user_id='.Yii::app()->user->id,
    ),
))->findAllByAttributes(array(
    'status' => array('register','vote','selected'),
));
项目投票:

public function relations() {
        return array(
            'pvotes' => array(self::HAS_MANY, 'ProjectVote', 'project_id'),
        );
    }
谢谢。

如果您添加带条件的with(),将限制搜索结果

如果您只需要处于这些状态的项目,那么使用with with array,只需字符串
model()->with('pvotes')->

只需使用条件来限制您的项目

public function relations() {
        return array(
            'project' => array(self::BELONGS_TO, 'Project', 'project_id'),
            'user' => array(self::BELONGS_TO, 'User', 'user_id'),
        );
    }