简体   繁体   中英

Yii CActiveDataProvider MANY::MANY

i got 2 models: Project and Users connected with (User.php):

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(
            "projects"=>array(self::MANY_MANY, 'Project','projects_users(user_id, project_id)'),
    );
}

I want to show all users in CActiveDataProvider who are not connected with project. How can i do it?

I found solution:

$criteria=new CDbCriteria;

foreach($model->users as $cur) {
    $criteria->addCondition("ID != ".$cur->ID);
    }

$users=User::model()->findAll($criteria);

$dataProvider2=new CActiveDataProvider('User');
$dataProvider2->data = $users;

Try this:

$users = User::model()->with('projects')->findAll(array(
    'together' => true,
    'condition' => 'projects.id IS NULL',
));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM