saguajardo / datatable
Libreria que provee la utilizacion de Datatables para Laravel 5
Requires
This package is not auto-updated.
Last update: 2024-11-14 11:20:20 UTC
README
Laravel 5 datatable
Datatable for Laravel 5. Con la ayuda de la clase Datatable para Laravel 5, podrán facilmente reutilizar y modificar datatables con consultas ajax. Por default, se utiliza con Bootstrap 3, pero puede ser utilizado sin ello.
Changelog
El log de cambios puede encontrarse aquí
###Instalación
{ "require": { "saguajardo/datatable": "dev-master" } }
Ejecutar composer update
Luego agregar la siguientes línea en el archivo config/app.php
, en el apartado providers
'providers' => [ // ... Saguajardo\Datatable\DatatableServiceProvider::class, ]
Ahora agregar los Facades (también en el archivo config/app.php
), apartado aliases
'aliases' => [ // ... 'Datatable'=> Saguajardo\Datatable\Facades\DatatableFacade::class, 'DatatableBuilder'=> Saguajardo\Datatable\DatatableBuilder::class, ]
Quick start
Crear la clase datatables es facil.
Se debe crear el archivo PruebaDatatable.php en el directorio app/Datatables/
con el siguiente contenido:
<?php namespace App\Datatables; use Saguajardo\Datatable\Datatable; class PruebaDatatable extends Datatable { public function buildDatatable() { $this ->add('Descripción') ->add('Perfil') ->add('Acción'); } }
Nota: El directorio puede ser cualquiera que ustedes prefieran. En mi caso, lo cree dentro del directorio app/
Luego de esto, instanciar la clase dentro del controlador y enviarselo a la vista:
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use Saguajardo\Datatable\DatatableBuilder; class PruebaController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { //Construct WelcomeController } public function prueba(DatatableBuilder $datatableBuilder) { // Creo el datatable $datatable = $datatableBuilder->create(\App\Datatables\PruebaDatatable::class, [ 'method' => 'GET', 'url' => 'listado', 'data' => ['id' => 'usuariosTable', 'fields' => [ 'data.descripcion', 'data.perfil', 'createEditDeleteButton(data.id)', ] ], ]); return view('prueba', compact('datatable')); } public function listado() { $array[] = array( "id" => 10, "descripcion" => "Prueba", "perfil" => "Admin", "id_perfil" => 20, ); echo json_encode(array( "data" => $array )); } }
Crear las rutas
// app/Http/routes.php Route::get('prueba', array('as' => 'prueba', 'uses' => 'PruebaController@prueba')); Route::get('listado', array('as' => 'listado', 'uses' => 'PruebaController@listado'));
Imprimir el Datatable en la vista con el Helper Datatable()
:
<!-- resources/views/prueba.blade.php -->
@extends('app')
@section('content')
{!! Datatable($datatable) !!}
@endsection
Accedemos a la url /prueba
; El código anterior generará lo siguiente:
Para publicar los archivos de configuración se debe ejecutar la siguiente instrucción con artisan:
php artisan vendor:publish
Esto creará el archivo config/datatable.php
(desde donde se podrán modificar las configuraciones de la clase) y las vistas utilizadas en el directorio resources/views/vendor/datatable/
. En ellas se podrán modificar los templates del datatable a su gusto.