Hola.
Estoy intentando visualizar datos juntos de varios Modelos en una sola Vista, en una tabla, con ordenación, paginación y búsqueda. No puedo hacer vistas ni asociaciones entre tablas de ninguna BD :(.
Así que la idea es mostrar en una sola tabla datos de varias tablas, los cuales a veces se relacionan y otras veces no. Por ejemplo, de varias tablas de usuarios mostrar en una sola fila los que tienen el mismo dni:
Código:
dni | nombre | apellidos | idTabla1 | idTabla2 | ... | idTablaN
45 Luis Pérez 1 - 2
17 Ana Vilar 40 12 -
12 Pepe López - 2 2
Lo primero que se me ocurrió fue cambiar los datos en el controllador, sin asociarle ningún modelo e importando los modelos que quiero recoger datos:
Código PHP:
<?php
App::import('Model', 'Usuario');
App::import('Model', 'User');
class UsuariosComunesController extends AppController {
var $name = 'usuarios_comunes';
var $helpers = array('Paginator','Ajax');
var $components = array('RequestHandler');
var $uses = null;
function index() {
$usuarios_comunes = array();
$m1 = new User;
$m2 = new Usuario;
$datos1 = $m1->find('all');
$datos2 = $m2->find('all');
foreach($datos1 as $dato){
$dni = $dato['User']['dni'];
$id = $dato['User']['idUsuario'];
$nombre = $dato['User']['nombre'];
if(!isset($usuarios_comunes[$dni])){
$usuarios_comunes[$dni]['nombre'] = $nombre;
$usuarios_comunes[$dni]['dni'] = $dni;
$usuarios_comunes[$dni]['id2'] = 0;
}
$usuarios_comunes[$dni]['id1'] = $id;
}
foreach($datos2 as $dato){
$dni = $dato['Usuario']['dni'];
$id = $dato['Usuario']['id'];
$nombre = $dato['Usuario']['nombre'];
if(!isset($usuarios_comunes[$dni])){
$usuarios_comunes[$dni]['nombre'] = $nombre;
$usuarios_comunes[$dni]['dni'] = $dni;
$usuarios_comunes[$dni]['id1'] = 0;
}
$usuarios_comunes[$dni]['id2'] = $id;
}
$result = array();
foreach($usuarios_comunes as $user){
$result[]['Usuario'] = $user;
}
//$this->set('usuarios_comunes', $this->paginate($result));
$this->set('usuarios_comunes', $result);
//$this->helpers['Paginator'] = array('ajax' => 'Ajax');
}
}
?>
El problema es que no puedo hacer paginación, ni ordenación. Así que pensé en crear el Modelo con un DataSource definido que recoja los datos de otros modelos y así poder usar la paginación y ordenación.
Pero antes quería preguntar a ver si alguien sabe que opción es la mejor.