Подтвердить что ты не робот

Почему переменная paginator не запоминает мои пользовательские параметры, когда я перехожу на страницу 2?

При использовании помощника paginator в представлениях cakephp он не запоминает части URL-адреса, которые являются обычными для моего использования.

Например:

http://example.org/users/index/moderators/page:2/sort:name/dir:asc

здесь модераторы - это параметр, который помогает мне фильтровать этот тип. Но нажатие ссылки paginator не будет включать эту ссылку.

4b9b3361

Ответ 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?