Привет всем!
Подскажите, пожалуйста.
Есть форма фильтрации, где пользователь выберает нужные ему критерии и нажимает поиск.
Данные выбираются из многих таблиц связанных между собой.
С помощью CDbCriteria формируется запрос из множеством условий, к примеру:
$criteria = new CDbCriteria;
// Загружаем связанные модели
$criteria->with = array(
'house_relation',
'sanitare_relation',
'street_relation',
'region_relation',
'district_relation',
'underground_relation',
'type_house_relation',
'type_area_relation',
'plan_relation',
);
$cond = ' ';
$cond .= " AND t.price_of_m2 BETWEEN ".$min_price." AND ".$max_price."";
$cond .= " AND t.flour IN (".$list_rooms.")";
и т.д.
и все это затем передается:
$criteria->condition = $cond;
$model = new CActiveDataProvider('Apartament',array(
'criteria'=>$criteria,
'pagination' => array(
'pageSize'=>3,
),
$this->widget(‘zii.widgets.CListView’, array(
'dataProvider'=>$model,
'itemView'=>'_view',
'emptyText'=>'Результат не найден. Измените критерий поиска.',
'sortableAttributes'=>array('id','t.price_of_m2'),
));
Проблема состоит в том, что когда появляется пагинация (пейджер) при большом количестве записей (в нашем варианте > 3) и когда нажимаешь на кнопку чтобы перейти на другую страницу вывода, настройки фильтра сбрасуются и отображаются все записи без учета фильтрации (условий).
Тоисть, поиск работает правильно, но если результатов несколько страниц, то при переходе на следующую страницу выводится вторая страница общих данных, т. е. результаты поиска сбрасываются - как это решить?
В чем проблема? Как сделать так что при пролистывании со страницы на страницу фильтры (условия выборки) не сбрасивались.
Что интиресно, что когда сразу открывается страница пейджер отображает правильное количество страниц, а вот при начале пролистывания - все сбрасывается!
Спасибо за любой совет!!!