Функция поиска CakePHP с подкачкой не работает

#search #cakephp #plugins #paging

#Поиск #cakephp #Плагины #подкачка

Вопрос:

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

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

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

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

Спасибо!

Комментарии:

1. в модели у нас также есть критерии упоминания public $actsAs = array('Search.Searchable'); и фильтрации public $filterArgs = array();

Ответ №1:

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

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

Комментарии:

1. Привет .. да, я добавил в view файл <?php $paginator->options(array('url' => $this->passedArgs)); ?> для отображения в paginator, он работает нормально, но передача того же самого в << Предыдущий amp; amp; Следующий >> не приводит меня к исправлению страницы.. означает, что если я нахожусь на странице № 2, на предыдущей и следующей страницах есть только ссылки на страницу № 2.. нет ссылок на страницу № 1 или страницу № 3..

Ответ №2:

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

 $this->paginate = array(
    'conditions' => array('Model.name LIKE' => '%'.$storedInTheSession.'%'),
    'order' => array('Model.name ASC'),
    );
  

Ответ №3:

Предполагая, что ваша форма создана с помощью ‘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)));
    }
  

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