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