Creo que lo primero que se necesitaría meter en una de estas tablas, al menos dentro de un panel de gestión, serían las acciones por fila. Los típicos botones o enlaces de modificar, eliminar, deshabilitar, seleccionar, etc. cada entrada.
Esta no es una información que forme parte de la base de datos. En PHP se suele meter el HTML necesario en cada bucle de la tabla, inyectándole el ID de cada entrada. ¿Laravel DataTables facilita este aspecto? ¡Y tanto!
Durante la creación del objeto DataTables podemos crear columnas al vuelo, con el método addColumn. Se le especifica un nombre de columna (uno cualquiera) y un contenido. Este puede ser HTML escrito a mano, o puede ser una vista Blade.
DataTables::of($tabla)->addColumn('acciones', 'tablas.tabla-acciones');
Dentro de la vista se pueden utilizar, como variables, las columnas de la fila actual. Sin más.
<a href="editar.php?id={{ $id }}">Editar {{ $nombre }}</a>
<a href="{{ route("tabla.informe", ["id" => $id]) }}">Informe</a>
Un detalle bastante importante en Javascript sería excluir esta columna de las búsquedas y reordenamiento.
{ data: 'acciones', orderable: false, searchable: false }
En el próximo capítulo: qué hacer con tablas relacionadas. No se preocupe: saldrá muy pronto.
No hay comentarios:
Publicar un comentario