Почему переменная paginator не запоминает мои пользовательские параметры, когда я перехожу на страницу 2?
При использовании помощника paginator в представлениях cakephp он не запоминает части URL-адреса, которые являются обычными для моего использования.
Например:
http://example.org/users/index/moderators/page:2/sort:name/dir:asc
здесь модераторы - это параметр, который помогает мне фильтровать этот тип. Но нажатие ссылки paginator не будет включать эту ссылку.
Ответы
Ответ 1
Чтобы добавить к Alexander Morland ответ выше, стоит помнить, что синтаксис был изменен в CakePHP 1.3 и теперь:
$this->Paginator->options(array('url' => $this->passedArgs));
Это описано далее в разделе pagination in views в книге CakePHP.
Ответ 2
Секрет добавляет эту строку к вашему виду:
$paginator- > Параметры (массив ( 'URL' = > $this- > passedArgs));
(Я создал этот вопрос и ответ, потому что это очень заданный вопрос, и я продолжаю отчитывать ответ, так как я не могу его запомнить.)
Ответ 3
$this- > passArgs - это предпочтительный способ сделать это из представления.
Ответ 4
Ты спас меня! Это очень помогло мне, спасибо.
Мне понадобился способ передать параметры, которые я изначально отправил по почте ($ this- > data) в компонент пейджинга, поэтому мой пользовательский запрос будет продолжать их использовать.
Вот что я сделал:
на мой взгляд я положил
$paginator->options(array('url'=>$this->data['Transaction']));
перед $paginator- > prev ('< < Предыдущий материал.
Сделав это, сделайте следующую ссылку в paginator как ".../страница: 1/start_date: 2000-01-01 %2000: 00: 00/end_date: 3000-01-01 %2023: 59: 59/payments_recieved: 1"
Затем на моем контроллере мне просто нужно было получить параметры и поместить их в данные $this- > , чтобы моя функция продолжалась как обычно:
foreach($this->params['named'] as $k=>$v)
{
/*
* set data as is normally expected
*/
$this->data['Transaction'][$k] = $v;
}
И что это. Пейджинг работает с моим пользовательским запросом.:)
Ответ 5
Варианты здесь - хорошее руководство... Вы также можете проверить дополнительную информацию о pagination cakePHP на cakephp.org/view/166/Pagination-in-Views
Ответ 6
С этим параметром "url" вы можете поместить только свою предпочтительную строку перед разбиением на страницы в URL-адресе.
если я использую этот tecnique:
$urlpagin = '?my_get1=1&my_get2=2';
$paginator->options = array('url'=>$urlpagin);
Я получаю только:
url/controller/action/?my_get1=1&my_get2=2/sort:.../...
и Cake потеряли мои параметры получения
Есть ли у вас альтернатива tecnique?