小编Cal*_*ete的帖子

YII CActiveDataProvider与关系表

我有三张桌子:

  • 内容(id)
  • ContentCategory(id_content,id_category)
  • 类别(id)

内容关系,

'Categories' => array(self::MANY_MANY, 'Category', 'ContentCategory(id_content, id_category)'),
'category' => array(self::HAS_MANY, 'Category', 'id'),
Run Code Online (Sandbox Code Playgroud)

我需要获取具有某些特定类别的内容的所有记录(在CAistDataProvider中用于CListView).

当我使用findAll()时,我得到了我想要的记录(它的工作原理),

$model=Content::model()->with(array(
'Categorieses'=>array(
    'condition'=>'id_category=1',
),
))->findAll();
Run Code Online (Sandbox Code Playgroud)

但是当我使用CActiveDataProvider时,我获得了Content中的所有记录(不是那些具有特定类别的记录 - 不起作用)

$dataProvider=new CActiveDataProvider('Content',
        array(
                'pagination'=>array('pageSize'=>15),
                'criteria'=>array(
                    'with'=>array(
                        'Categories'=>array(
                            'condition'=>'id_category=1',
                        ),
                    ),
                ),
            )
        );
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

非常感谢!

yii

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

yii ×1