white-frame / dynatable
此包已废弃,不再维护。未建议替代包。
适用于 Laravel 5 的非常简单的服务器端 Dynatable 处理程序
5.2.0.0
2016-01-19 15:00 UTC
Requires
- php: >=5.5.9
- illuminate/support: 5.2.*
- white-frame/white-frame: 5.2.*
README
已弃用:由于 DynatableJs 已不再由作者支持,因此该包已弃用。
Dynatable
适用于 Laravel 的非常简单的服务器端 Dynatable 处理程序。它处理前端中 dynatable jQuery 插件的 AJAX 调用。
使用此插件,您可以使用服务器端(AJAX)分页、排序、全局搜索和特定搜索。使用简单的 API,您可以自定义所有处理,如搜索、排序、列显示。
此包是 WhiteFrame 框架的一部分。只有从 white-frame/white-frame 安装时才能使用 Widget 等功能。请参阅 WhiteFrame 使用部分。
安装
Laravel 5
使用 composer 安装此包
composer require white-frame/dynatable:2.*
Laravel 4:请参阅 v1 分支
通用用法
这是一个简单的示例
<?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(); } }
自定义列处理
更改列的内容
$dynatable->column('price', function($car) { return number_format($car->price) . ' $'; });
为每行添加新列
$dynatable->column('actions', function($car) { return '<a href="/car/' . $car->id . '">View</a>'; });
自定义列排序
$dynatable->sort('id', function($query, $mode) { return $query->orderBy('id', $mode == 'asc'); });
自定义全局搜索
$dynatable->search(function($query, $term) { return $query->where('name', 'LIKE', '%' . $term . '%'); });
自定义特定列搜索
$dynatable->search('year', function($query, $term) { return $query->whereBetween('year', array($term - 5, $term + 5)); });
Dynatable::of
的使用
Dynatable::of
静态方法需要 3 个参数
- 您要与之工作的查询构建器
- 如果您想获取一个不带任何
where
操作的对象查询构建器,可以执行Car::query()
。 - 包含要显示的列的数组
- 请求输入(通常
$request->all()
就足够了)。
WhiteFrame 使用
这里的工作... :)