odysseycrew/datatables

此包已废弃,不再维护。未建议替代包。
此包最新版本(1.1.6)的许可证信息不可用。

Datatables 插件

1.1.6 2019-01-22 11:35 UTC

This package is not auto-updated.

Last update: 2020-10-05 12:39:03 UTC


README

易于创建数据表的包

安装

php artisan vendor:publish --tag=datatables

基本用法

在控制器中使用

Odysseycrew\DataTables\DataTable as DataTable

为您的表创建 create 方法

private function getTable()
{
 $table = new DataTable('tableOrModelName');
 return $table;
}

并使用它

public function index()
{
    return response()->view('data.index',['dataTable' => $this->getTable()]);
}

public function indexAjax(Request $request)
{
    $output = $this->getTable()->output($request);
    return response()->json($output);
}

默认情况下,$table 将尝试从 $tableOrModelName.indexAjax 获取输出

最后,在视图中使用

@dataTable($dataTable)

如果您想包含 datatables JS 和 CSS 文件,请在视图中使用 'datatables-js''datatables-css' 部分。

警告!如果您不想使用上述部分,需要将表中的 noSection 参数设置为 true

示例

private function getTable()
{
 $table = new DataTable('tableOrModelName');
 $table->noSection = true;
 return $table;
}

高级用法

__construct()

`$table = new DataTable('tableOrModelName','routeName','columns','options'')

构造函数接受四个参数

  • 模型(模型或表名)
  • 路由(可为空,返回表输出的路由名 - 默认是 $model.indexjax)
  • 列(可为空,列的数组,格式为 ['columnName','columnDatabaseField','columnsOptions']
  • 选项(可为空,数组,格式为 ['option1' => '1', 'option2' => '2']

所有这些表参数都可以通过设置函数 setModel(), setRoute(), setColumns()setOptions() 设置

addColumn()

$table->addColumns(['columnName','columnDatabaseField','columnsOptionsArray'])

changeColumn()

$table->addColumns('columnDatabaseField',['columnName','columnDatabaseField','columnsOptionsArray'])

removeColumns()

通过列字段删除列

$table->removeColumns('columnsField')

setQuery()

设置输出数据

示例

$query = User::where('active',1)->get();
$table->setQuery($query);

addToQuery()

向默认查询添加规则

示例

$table->addToQuery(['where','active',1]);

setActions()

在表格末尾添加操作。此方法接受格式为 ['actionLabel','actionName','content'] 的操作数组。# 标签之间的参数将被模型属性替换。

示例

$table->setActions([
      ['Show','actions','<a href="'.route('user.show',['id' => '#id#']).'">Show</a>']
  ]);
}

在此示例中 #id# 将被替换为 $user->id

setParams()

为 AJAX 调用或路由设置额外的参数

AJAX

`$table->setParams(['name' => 'Example'])`

路由

`$table->setParams(['name' => 'Example'], 'route')`

addParams()

setParams() 函数一样使用。传入的参数将被添加到之前定义的参数中。