Por doesnt paginator lembro dos meus parâmetros personalizados quando eu ir para a página 2?

StackOverflow https://stackoverflow.com/questions/147995

  •  02-07-2019
  •  | 
  •  

Pergunta

Ao usar o ajudante paginator em vista CakePHP, ele não se lembrar partes do URL que são personalizadas para o meu useage.

Por exemplo:

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

aqui moderadores é um parâmetro que me ajuda a filtrar por tipo. Mas pressionando um link paginator não irá incluir este link.

Foi útil?

Solução

Para adicionar a resposta de Alexander Morland acima, vale a pena lembrar que a sintaxe mudou em CakePHP 1.3 e agora é:

$this->Paginator->options(array('url' => $this->passedArgs));

Esta é descrito mais adiante na pagination na seção do livro CakePHP vistas .

Outras dicas

O segredo está adicionando esta linha ao seu ponto de vista:

$ paginator-> Opções (array ( 'url' => $ this-> passedArgs));

(Eu criei esta pergunta e resposta, porque é uma questão muito perguntou e eu continuo tendo que cavar a resposta, uma vez que eu não posso lembrar.)

$ this-> passedArgs é a melhor maneira de fazer isso a partir do ponto de vista.

Você me salvou! Isso me ajudou muito, obrigado.

Eu precisava de uma maneira de passar os parâmetros que originalmente enviados via correio ($ this-> dados) para o componente de paginação, então minha consulta personalizada iria continuar a usá-los.

Aqui está o que eu fiz:

no meu ponto de vista eu coloquei

$paginator->options(array('url'=>$this->data['Transaction']));

antes do $ paginator-> prev ( '<< Anterior' coisas.

Fazendo isso fez o próximo elo na paginator como " ... / página: 1 / start_date: 2000-01-01% 2000: 00: 00 / end_date: 3000-01-01% 2023: 59: 59 / payments_recieved: 1"

Em seguida, no meu controlador eu só tinha de obter os parâmetros e colocá-los no $ this-> dados para que a minha função iria continuar como de costume:

foreach($this->params['named'] as $k=>$v)
{
    /*
     * set data as is normally expected
     */
    $this->data['Transaction'][$k] = $v;
}

E é isso. Paginação obras com minha consulta personalizada. :)

As opções aqui são uma boa vantagem ... Você também pode verificar para mais informações sobre cakePHP paginação em cakephp.org/view/166/Pagination-in-Views

Com que param 'url' você só pode colocar sua seqüência de preferência antes da paginação corda na url ..

Se eu usar esse tecnique:

$urlpagin = '?my_get1=1&my_get2=2';
$paginator->options = array('url'=>$urlpagin);

Eu só obter:

url/controller/action/?my_get1=1&my_get2=2/sort:.../...

e bolo perdi meu get params

Você já um tecnique alternativa?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top