white-frame/dynatable

此包已废弃,不再维护。未建议替代包。

适用于 Laravel 5 的非常简单的服务器端 Dynatable 处理程序

5.2.0.0 2016-01-19 15:00 UTC

This package is not auto-updated.

Last update: 2020-07-29 13:44:07 UTC


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 使用

这里的工作... :)