У меня есть страница списка пользователей, где результат может быть изменен с помощью выбора полов, города и страны (выпадающих списков), и он работает отлично. Поскольку у нас есть много пользователей, мне также нужно поставить разбивку на страницы, и вот идет «странная» часть (я уверен, что это не странно, но я просто не могу понять, откуда эта проблема): когда я выбираю пол, разбиение на страницы отлично работает, и я могу перемещаться между всеми страницами, но, если я выбираю город, например (кроме или не пола), номера разбивки на страницы верны, но я потерял ограничение города, когда перехожу к другому стр.Weird CakePHP (1.3) Поведение компонента для разбиения на страницы
Итак, я попытался понять, что происходит с моими фильтрами, отображая $this->data
. И он говорит точно так же, как и раньше: отлично работает с полом ($this->data['users']['gender']
просматривает все страницы разбивки на страницы), но другие параметры просто потерялись, как только я попытаюсь уйти.
Дело в том, что нет никакой разницы между фильтром gender
и другими, либо на стороне контроллера, либо в представлении (оба являются входами выбора).
На более технической стороне, вот немного моего кода:
//In the controller function
if (!empty($this->data['users']['gender'])) {
$conditions['gender'] = $this->data['users']['gender'];
}
if (!empty($this->data['users']['country_id'])) {
$conditions['city_id'] =
$this->User->City->find(
'list',
array(
'conditions' => array(
'country_id' => $this->data['users']['country_id']),
'fields' => 'City.id'));
}
if (!empty($this->data['users']['city_id'])) {
if($this->data['users']['city_id'] == 'NULL') {
$conditions['city_id IS ?'] = NULL;
} else {
$conditions['city_id'] = $this->data['users']['city_id'];
}
}
//debug($this->data);
$options = array(
'limit' => 20,
'order' => 'User.lastname ASC',
'conditions' => $conditions);
$this->paginate = $options;
$users = $this->paginate('User');
Как вы можете видеть, я использую функцию paginate()
внутри контроллера. Я до сих пор не понимаю, почему это работает для пола фильтр, а не остальные
Cheers,
Nicolas.
Привет, я прочитал всю статью и несколько раз потратил на то, чтобы все работало, оно работает как шарм с вашим предложением _GET. Благодарю. – Nicolas