, (*1)
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., (*2)
Changelog
El log de cambios puede encontrarse aquí, (*3)
Instalación
``` json
{
"require": {
"saguajardo/datatable": "dev-master"
}
}, (*4)
Ejecutar `composer update`
Luego agregar la siguientes línea en el archivo `config/app.php`, en el apartado `providers`
``` php
'providers' => [
// ...
Saguajardo\Datatable\DatatableServiceProvider::class,
]
Ahora agregar los Facades (también en el archivo config/app.php
), apartado aliases
, (*5)
``` php
'aliases' => [
// ...
'Datatable'=> Saguajardo\Datatable\Facades\DatatableFacade::class,
'DatatableBuilder'=> Saguajardo\Datatable\DatatableBuilder::class,
], (*6)
### 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
<?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/, (*7)
Luego de esto, instanciar la clase dentro del controlador y enviarselo a la vista:, (*8)
<?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, (*9)
// 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()
:, (*10)
@extends('app')
@section('content')
{!! Datatable($datatable) !!}
@endsection
Accedemos a la url /prueba
; El código anterior generará lo siguiente:, (*11)
, (*12)
Para publicar los archivos de configuración se debe ejecutar la siguiente instrucción con artisan:, (*13)
php artisan vendor:publish
, (*14)
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., (*15)