Функция поиска CakePHP с пейджингом не работает - PullRequest
0 голосов
/ 11 мая 2011

Мы используем стандартное поведение поиска CakePHP со страницей листинга, и как только я выбрал некоторые критерии для поиска, он работает нормально.

Теперь, когда я захожу на страницу №.2 с критериями поиска, параметры поиска не передаются вместе с пейджингом, и он становится обычным списком.

У кого-нибудь есть идеи по поводу поиска и комбинации пейджинга с подключаемым модулем поиска CakePHP 1.2 по умолчанию.

Дайте мне знать ваши ответы как можно скорее.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 11 мая 2011

Если вы работаете с сеансами, тогда критерии поиска могут быть сохранены в сеансе. Вам просто нужно убедиться, что пользователь также может легко сбросить сохраненные критерии поиска.

$this->paginate = array(
    'conditions' => array('Model.name LIKE' => '%'.$storedInTheSession.'%'),
    'order' => array('Model.name ASC'),
    );
0 голосов
/ 12 мая 2011

Предполагая, что ваша форма создана с помощью 'type' => 'get'

echo $form->create('Content', array('action' => '/index', 'class' => 'forms','type'=>'get'));

Вы можете сделать что-то вроде:

    if(isset($_GET['some_criteria'])){ //if some of you fields is set
        unset($_GET['url']); //this is set by CakePHP and we don't need it
        $paginator->options = array('url'=> array('controller' => 'content', 'action' => 'index', '?' => http_build_query($_GET)));
    }

Хотя это может удовлетворить ваши потребности, я предупреждаю вас, что это не может быть CakePHPiest способ

0 голосов
/ 11 мая 2011

Взгляните на этот урок. Это похоже на то, что я делал в прошлом.

http://mrphp.com.au/code/search-forms-cakephp

...