Lo que me tenía preocupado hasta ahora era la posibilidad de combinar esto con Controller::paginate, como forma de descargar el Controller de la preparación de condiciones de búsqueda cuando no quieres un findAll puro y duro de los datos.
Estudiando el código en el api resulta que sí es posible indicarle a Paginate que utilice una de estas personalizaciones, aunque para lograr que funcione el código que voy a presentar tienes que bajarte una nighty build o bien el código de controller.php más reciente. Me parece que la cosa está un pelín verde todavía, pero a mí me ha funcionado de esta manera:
function admin_index($mode = 'all') {
$this->User->recursive = 0;
switch ($mode) {
case 'pending':
$this->paginate['User'][0] = 'pending';
break;
default:
# code...
break;
}
$this->set('users', $this->paginate());
}
La clave está en la asignación de un valor al variable $this->paginate['nombre_del_modelo'][0] = 'find_personalizado'. Indicándolo así, Controller::paginate recabará los datos usando esa búsqueda en lugar de findAll.
Recuerda que la versión RC2 todavía no soporta esta capacidad.
No hay comentarios:
Publicar un comentario