Yii cgridview cactivedataprovider工作不正常

Yii cgridview cactivedataprovider工作不正常,yii,yii-components,cgridview,cactivedataprovider,Yii,Yii Components,Cgridview,Cactivedataprovider,我配置了Yii cactivedataprovider,文档中写道: $criteria = new CDbCriteria(); $criteria->together = true; $criteria->with = array( 'relationId0', 'relationId1', ... ); $criteria->compare('"relationId0".property0', $this->re

我配置了Yii cactivedataprovider,文档中写道:

$criteria = new CDbCriteria();
$criteria->together = true;

$criteria->with = array(
        'relationId0',
        'relationId1',
        ... 
);

$criteria->compare('"relationId0".property0', $this->relationId0_property0, true);
return new CActiveDataProvider($this, array(
        'criteria' => $criteria,
        'sort' => array(
            'attributes' => array(
                ...
                'relationId0.property0' => array(
                    'asc' => '"relationId0".property0',
                    'desc' => '"relationId0".property0 DESC',
                ),
                ...
             )
         )
));
因此,当->together为false时,gridview将正常工作,并获取分页所允许的所有行,但在本例中,比较(因此搜索)不起作用(因为这种方式不使用sql查询中的相关对象)

但是当->together为真时(假设这是解决方案),比较工作,但gridview在每个页面中获得随机数目的行


感谢您的帮助。

尝试将
分页添加到数据提供程序中

return new CActiveDataProvider($this, array(
    'criteria' => $criteria,
    'pagination'=>array('pageSize'=>10),
    'sort' => array(
        'attributes' => array(
            ...
            'relationId0.property0' => array(
                'asc' => '"relationId0".property0',
                'desc' => '"relationId0".property0 DESC',
            ),
            ...
         )
     )
));
这应该能解决你的问题