openlss/lib-datatables

jQuery Datatables 的 PHP 接口 (https://datatables.net.cn)。简单独立,非框架依赖。

0.0.2 2013-05-08 02:02 UTC

This package is not auto-updated.

Last update: 2024-09-09 11:25:46 UTC


README

jQuery Datatables 的 PHP 接口 (https://datatables.net.cn)。简单独立,非框架依赖。

本文档假设您已有一个运行的 datatables 前端。只需将其指向下面的使用代码即可。

使用

这是标准使用方式,它将在提供的 Db 对象上构建和执行查询。

$obj = DataTables::_get()
	->setDB(Db::_get()) //add our database object
	->setDataModel('\BrowserModel')	//set datamodel to use for row formatting
	->setColumns(array('engine','browser','platform','version','grade')) //set column defs
	->setPrimary('id') //set primary column
	->setTable('table') //set sql table to use
	->setupFromRequest() //setup the object from $_REQUEST
	->process(); //process the request
echo $obj; //uses __toString to output json
exit;

这是定义数据回调函数的替代语法

$obj = DataTables::_get()
	->setDataCallback('my_data_function')
	->setDataModel('\BrowserModel')	//set datamodel to use for row formatting
	->setColumns(array('engine','browser','platform','version','grade')) //set column defs
	->setupFromRequest() //setup the object from $_REQUEST
	->process(); //process the request
echo $obj;
exit;

openlss/lib-datamodels 使用

class BrowserModel extends \LSS\DataModel {
	//format version
	public function getVersion(){
		return empty($this->version) ? '-' : $this->version;
	}
}

方法

(object) DataTables::_get()

返回一个与

$obj = new DataTables();

($this) DataTables::setDB(\LSS\Db $obj)

设置要调用查询的 LSS\Db 对象

($this) DataTables::setColumns($array)

设置表格中的列数组(应与 SQL 名称匹配)

($this) DataTables::setPrimary($val)

设置主列名称(可以是数组,用于多列)

($this) DataTables::setTable($val)

设置要使用的数据库表(可以是多个,用逗号分隔)注意:目前不支持连接

($this) DataTables::setDataCallback($callback,[$arg1,$arg2...])

设置数据回调函数以提供数据,而不是直接查询数据库。正确的返回是一个包含三个部分的数组,包括

  • $result_array 数组中的结果
  • $count_results 返回的结果数
  • $count_total 记录的总数 示例回调函数
function my_callback_function($columns,$where,$order_by,$limit,$arg1,$arg2){
	//execute query here
	return array($results,$count_results,$count_total);
}

($this) DataTables::setDataModel($val)

设置要使用的 datamodel 类。默认使用 \LSS\DataModel,无扩展

($this) DataTables::setParams($name,$val)

存储任意参数,用于在生成的 JSON 中使用

(int) DataTables::getColumnCount()

返回设置的列数(缓存结果以提高速度)

(string) DataTables::getColumnByKey($key)

返回索引号的列名称

(mixed) DataTables::getParam($key)

通过名称(键)返回设置的参数值

(string) DataTables::getJSON()

返回从结果数组构建的 JSON

(array) DataTables::getResult()

返回构建的结果数组

($this) DataTables::setupFromRequest()

从 $_REQUEST 中设置所需的各种部分,以生成查询

($this) DataTables::setupPaging($start=null,$limit=null)

为 SQL 设置分页

($this) DataTables::setupOrdering((mixed...))

动态函数,用于设置排序 参数格式是

  • col_number 列号
  • col_x_sortable 列是否可排序
  • col_x_key 与 $this->columns 相关的列号
  • col_x_sort_dir 列的排序方向

($this) DataTables::setupFiltering((mixed...))

注意,这与内置的 DataTables 过滤器不匹配,该过滤器在任意字段上逐词执行。这里可以做到,但担心在大表上效率低下,MySQL 的正则表达式功能非常有限。动态函数用于设置过滤 参数格式是

  • search_string 用户搜索字符串
  • col_x_searchable 可搜索的列 ID
  • col_x_search_string 每列的单独搜索字符串

($this) DataTables::setupQueries()

根据收集的数据设置 SQL 查询

($this) DataTables::proces()

运行查询并构建结果数组

(string) DataTables::__toString()

当对象用作字符串时返回结果 JSON