YII CActiveDataProvider avec des tables relationnelles

J'ai trois tables:

  • Contenu (id)
  • ContentCategory (id_content, id_category)
  • Catégorie (id)

Relations de Contenu,

'Categories' => array(self::MANY_MANY, 'Category', 'ContentCategory(id_content, id_category)'),
'category' => array(self::HAS_MANY, 'Category', 'id'),

J'ai besoin de récupérer tous les enregistrements de Contenu qui ont une certaine Catégorie spécifique (dans un CActiveDataProvider à utiliser dans CListView).

Lorsque j'utilise le findAll(), j'obtiens les dossiers que je veux (ça fonctionne),

$model=Content::model()->with(array(
'Categorieses'=>array(
    'condition'=>'id_category=1',
),
))->findAll();

Mais quand je le fais avec CActiveDataProvider je obtenir tous les enregistrements dans le Contenu (et non pas ceux qui ont de la Catégorie spécifique - Pas de travaux)

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

Comment puis-je le faire?

Merci beaucoup!

OriginalL'auteur Calete | 2011-12-06