我配置了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会在每个页面中获得随机行数。
感谢您的帮助。
答案 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',
),
...
)
)
));
这可以解决您的问题。