white-frame / dynatable
Very simple server-side Dynatable handler for Laravel 5
Requires
- php: >=5.5.9
- illuminate/support: 5.2.*
- white-frame/white-frame: 5.2.*
README
Deprecated : As the DynatableJs is no longer supported by the authors, this package is deprecated.
Dynatable
Very simple server-side Dynatable handler for Laravel. It handle the ajax calls from the dynatable jquery plugin in the front end.
Using this plugin you can use server-side (ajax) pagination, sorting, global search and specific search. With a simple API you can customize all handlings such as search, sort, column display.
This package is part of WhiteFrame Framework. Features like Widget can be only used when installed from white-frame/white-frame. See WhiteFrame Usage section.
Installation
Laravel 5
Install the package using composer :
composer require white-frame/dynatable:2.*
Laravel 4 : see v1 branch
General Usage
This is a light working example :
<?php use Illuminate\Http\Request; use Illuminate\Routing\Controller; use WhiteFrame\Dynatable\Dynatable; class UserController extends Controller public function dynatable(Request $request) { // Get a query builder of what you want to show in dynatable $cars = Car::where('year', '=', 2007); // or Car::query() for all cars $columns = ['id', 'name', 'price', 'stock']; // Build dynatable response with your query builder, columns and all input from dynatable font end javascript $dynatable = Dynatable::of($cars, $columns, $request->all())); // ... Here you can customize the result and change columns handling with $dynatable (see example below) // Build the response and return to the table return $dynatable->make(); } }
Customize columns handling
Change the content of a column :
$dynatable->column('price', function($car) { return number_format($car->price) . ' $'; });
Add a new column for each row :
$dynatable->column('actions', function($car) { return '<a href="/car/' . $car->id . '">View</a>'; });
Customize column sorting :
$dynatable->sort('id', function($query, $mode) { return $query->orderBy('id', $mode == 'asc'); });
Customize global searching :
$dynatable->search(function($query, $term) { return $query->where('name', 'LIKE', '%' . $term . '%'); });
Customize specific column searching :
$dynatable->search('year', function($query, $term) { return $query->whereBetween('year', array($term - 5, $term + 5)); });
The use of Dynatable::of
The Dynatable::of
static method require 3 parameters :
- The query builder you want to work with
- If you want to get an object query builder without doing any
where
, you can doCar::query()
. - An array containing columns to display
- The requests input (generally
$request->all()
is fine).
WhiteFrame Usage
Work to do here ... :)