Yii 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',
),
...
)
)
));
Итак, когда -> вместе - ложь, то gridview работает должным образом и получает все строки, что разрешено разбиением на страницы, но в этом случае сравнение (то есть поиск) не работает (потому что этот способ не использует связанные объекты в запросе sql),
но когда -> вместе - истина (и, возможно, это решение), сравнение работает, но gridview получает случайное количество строк на каждой странице.
Спасибо за помощь.
1 ответ
Попробуй добавить 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',
),
...
)
)
));
Это должно решить вашу проблему.