Pareces nuevo por aquí. Si quieres participar, ¡pulsa uno de estos botones!
KumbiaException: Every derived table must have its own alias al
ejecutar <em>"SELECT COUNT(*) FROM (SELECT empresa.nombre FROM
empresa INNER JOIN grupo_empresa ON empresa.grupo_empresas_id =
grupo_empresa.id)) AS t"</em> (0)
En el archivo /var/www/sumo/core/libs/db/adapters/mysql.php en la línea: 158
Me imagino que debe ser algo básico que no estoy haciendo bien.
Estoy usando la versión 1.0 beta 2.
A propósito, no hay otra forma de hacer un paginate compuesto sin utilizar el paginate_by_sql asi mantenemos la independencia del motor de base de datos.
Desde ya agradezco cualquier ayuda.
Saludos.
Comentarios
$sql = "SELECT * FROM empresa INNER JOIN grupo_empresa ON empresa.grupo_empresas_id = grupo_empresa.id)";
veo que tienes un cierre de parentesis al final que está de más, ese debe ser el probema.
Respondiendo a tu segunda pregunta, si hay otra forma de realizar un paginate y para tu caso seria más o menos asi:
$modelo->paginate("columns: empresa.*,grupo_empresa.campo1,grupo_empresa.campo1 " , "join: inner join grupo_empresa ON empresa.grupo_empresas_id = grupo_empresa.id","page: $page" , "per_page: $ppage");
El metodo paginate recibe los mismos parametros que el metodo find: group, order, join, columns, ademas del los parametros page y per_page.
aqui tienes mas ejemplos de uso:
https://github.com/manuelj555/backend_kumbia/blob/bootstrap_2/app/models/usuarios.php
https://github.com/manuelj555/backend_kumbia/blob/bootstrap_2/app/models/menus.php
Entre las pistas que me diste y el código de tus clases lo logré sacar.
Te muestro como lo resolví:
en el modelo quedó así:
public function getEmpresasConGrupos($page, $ppage=20){
$cols = "empresa.*,(grupo_empresa.nombre) grupo";
$join = "INNER JOIN grupo_empresa ON grupo_empresa.id = empresa.grupo_empresas_id";
return $this->paginate("columns: $cols","join: $join","page: $page","per_page: $ppage");
}
y en la vista:
<?php foreach ($listEmpresas->items as $item): ?>
<tr>
<td><?php echo $item->id; ?></td>
<td><?php echo $item->nombre; ?></td>
<td><?php echo $item->grupo; ?></td>
<td><?php echo Ajax::link("empresa/edit/$item->id/", 'Editar', 'principal') ?></td>
<td><?php echo Ajax::linkConfirm("empresa/delete/$item->id/", 'Borrar', 'principal','¿Está seguro de borrar este registro?') ?></td>
</tr>
<?php endforeach;?>
Espero que a algún otro kumbiero novato como yo lo pueda sacar de apuros.
Mil Gracias!!!
P.D.: muy bueno el trabajo para el backend que hiciste. Está muy interesante.
Hay una forma de obtener todos los registros pagiandos?
per_pag: all