En fin, para volver a la buena senda, he aquí cómo me las apaño para resolver un problema típico:
Tenemos una vista de registros paginada, con la más o menos típica tabla, con sus cabeceras "clicables" para ordenar los registros y sus botones para cambiar de página.
También tenemos un problema: ¿cómo conservar todos los parámetros que vienen en la URL en los enlaces relacionados con la paginación? Pues, la verdad es que es bastante sencillo:
$options = array(
'url' => array_merge($url, $this->params['named'], $this->params['pass']),
'model' => $this->defaultModel
);
$this->Paginator->options($options);
Bien, lo que tenemos que hacer es pasarle a Paginator un array de opciones que contenga una clave 'url' la cual estará compuesta por una URL de CakePHP expresada como array a la que habremos añadido los parámetros adecuados.
¿Dónde vamos a encontrar esos parámetros? Muy sencillo, en la vista en la que estemos trabajando (o incluso dentro de un Helper, que es de donde he copiado el código) tendremos los parámetros de la petición presentes en la variable de clase params, estando los parámetros "directos" en la clave 'pass' y los que tienen nombre en la clave 'named'. Simplemente hacermos un array_merge de la url, y ambos arrays de parámetros.
En el código de ejemplo, $url contendrá la URL básica de la vista.
No hay comentarios:
Publicar un comentario