Yii cgridview cactivedataprovider无法正常工作

时间:2015-03-12 13:34:55

标签: yii yii-components cgridview cactivedataprovider

我配置了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',
                ),
                ...
             )
         )
));

所以,当 - >在一起时为false,那么gridview正常工作并获取分页所允许的所有行,但在这种情况下,比较(因此搜索)不起作用(因为这种方式不使用相关对象在sql查询中),

但是当 - >在一起时为真(并且它应该是解决方案)时,比较正在进行,但gridview会在每个页面中获得随机行数。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

尝试将pagination添加到数据提供者中。

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',
            ),
            ...
         )
     )
));

这可以解决您的问题。