datatables

2025-12-07 0 347

phpdatatables

使用我们的Lightning-Fast PHP库轻松地简化了您的datatables服务器端处理,从而无缝简化了您的工作流程。现场演示

特征

  • 便于使用。仅使用几行代码生成JSON。
  • 具有关闭功能的可编辑列。
  • 支持自定义过滤器。
  • 可以处理最复杂的查询。
  • 支持本机PHP的MySQL和SQLite。
  • 与:
    • 拉拉维尔
    • Codeigniter 3
    • Codeigniter 4
    • phalcon 3+
    • Prestashop
    • Postgresql

安装

注意: 2.0+版本需要PHP 7.1.3+(支持版本)

安装图书馆的推荐方法是与作曲家

如果您尚未开始使用作曲家,我强烈建议您使用它。

将一个名为composer.json的文件放在您项目的根源上,其中包含此信息:

datatables": "2.*"
}
}\”>

 {
    \"require\": {
       \"ozdemir/ datatables \": \"2.*\"
    }
}

然后运行:

 composer install

或刚运行:

 composer require ozdemir/ datatables

将自动加载器添加到您的项目中:

    <?php

    require_once \' vendor/autoload.php \' ;

您现在准备开始使用datatables PHP库。

datatables ;
use Ozdemir\\ datatables \\DB\\MySQL;

$config = [ \’host\’ => \’localhost\’,
\’port\’ => \’3306\’,
\’username\’ => \’homestead\’,
\’password\’ => \’secret\’,
\’database\’ => \’sakila\’ ];

$dt = new datatables ( new MySQL($config) );

$dt->query(\’Select film_id, title, description from film\’);

echo $dt->generate();\”>

    <?php
    require_once \' vendor/autoload.php \' ;

    use Ozdemir \\ datatables \\ datatables ;
    use Ozdemir \\ datatables \\ DB \\ MySQL ;

    $ config = [ \' host \'     => \' localhost \' ,
                \' port \'     => \' 3306 \' ,
                \' username \' => \' homestead \' ,
                \' password \' => \' secret \' ,
                \' database \' => \' sakila \' ];

    $ dt = new datatables ( new MySQL ( $ config ) );

    $ dt -> query ( \' Select film_id, title, description from film \' );

    echo $ dt -> generate ();

如果您使用的是PHP框架,例如CodeIgniter或Laravel,则可以使用相关的数据库适配器。

datatables ;
use Ozdemir\\ datatables \\DB\\Codeigniter4Adapter;

class Home extends BaseController
{
public function index()
{
return view(\’index\’);
}

public function ajax()
{
// CI 4 builder class
$db = Database::connect();

$builder = $db->table(\’Track\’);
$builder->select(\’TrackId, Name, UnitPrice\’);

// datatables Php Library
$ datatables = new datatables (new Codeigniter4Adapter);

// using CI4 Builder
$ datatables ->query($builder);

// alternatively plain sql
// $ datatables ->query(\’Select TrackId, Name, UnitPrice from Track\’);

return $this->response->setJSON($ datatables ->generate()->toJson());
}
}\”>

 // Codeigniter 4 Example

<?php

namespace App \\ Controllers ;

use Config \\ Database ;
use Ozdemir \\ datatables \\ datatables ;
use Ozdemir \\ datatables \\ DB \\ Codeigniter4Adapter ;

class Home extends BaseController
{
    public function index ()
    {
        return view ( \' index \' );
    }

    public function ajax ()
    {
        // CI 4 builder class
        $ db = Database:: connect ();

        $ builder = $ db -> table ( \' Track \' );
        $ builder -> select ( \' TrackId, Name, UnitPrice \' );

        // datatables Php Library
        $ datatables = new datatables ( new Codeigniter4Adapter );

        // using CI4 Builder
        $ datatables -> query ( $ builder );

        // alternatively plain sql
        // $ datatables ->query(\'Select TrackId, Name, UnitPrice from Track\');

        return $ this -> response -> setJSON ( $ datatables -> generate ()-> toJson ());
    }
}

datatables ;
use Ozdemir\\ datatables \\DB\\LaravelAdapter;

Route::get(\’/ajax/laravel\’, function () {

$dt = new datatables (new LaravelAdapter);

$dt->query(
Track::query()
->select([
\’TrackId\’,
\’Track.Name\’,
\’Title as Album\’,
\’MediaType.Name as MediaType\’,
\’UnitPrice\’,
\’Milliseconds\’,
\’Bytes\’,
])
->join(\’Album\’, \’Album.AlbumId\’, \’Track.AlbumId\’)
->join(\’MediaType\’, \’MediaType.MediaTypeId\’, \’Track.MediaTypeId\’)
); // same as the previous example, sql statement can be used.

return $dt->generate();
});
\”>

 // Laravel Example

<?php
// routes/web.php 

use Ozdemir \\ datatables \\ datatables ;
use Ozdemir \\ datatables \\ DB \\ LaravelAdapter ;

Route:: get ( \' /ajax/laravel \' , function () {

    $ dt = new datatables ( new LaravelAdapter );

    $ dt -> query (
      Track:: query ()
          -> select ([
              \' TrackId \' ,
              \' Track.Name \' ,
              \' Title as Album \' ,
              \' MediaType.Name as MediaType \' ,
              \' UnitPrice \' ,
              \' Milliseconds \' ,
              \' Bytes \' ,
          ])
          -> join ( \' Album \' , \' Album.AlbumId \' , \' Track.AlbumId \' )
          -> join ( \' MediaType \' , \' MediaType.MediaTypeId \' , \' Track.MediaTypeId \' )
    ); // same as the previous example, sql statement can be used.

    return $ dt -> generate ();
});

方法

这是可用公共方法的列表。

需要查询($查询)

  • 设置SQL查询

需要()

  • 运行查询并构建输出
  • 返回输出为JSON
  • 与生成() – > tojson()相同

tojson()

  • 返回输出为JSON
  • 应在生成后调用()

toarray()

  • 返回输出作为数组
  • 应在生成后调用()

添加($ column,function($ row){})

  • 添加用于自定义使用的额外列

编辑($ column,function($ row){})

  • 允许列编辑

过滤器($ column,function(){})

  • 允许自定义过滤
  • 它具有以下方法
    • 逃生($ value)
    • searchValue()
    • DefaultFilter()
    • 在($ low,$ high)之间
    • 其中($ array)
    • 大街($ value)
    • Lessthan($ value)

hide($ linters)

  • 从输出中删除列
  • 当您只需要使用add()或edit()方法中的数据时,这很有用。

setDistInctresponsefrom($ linter)

  • 用给定的列名执行查询,并使用不同的数据键将返回的数据添加到输出中。

setDistInctresponse($输出)

  • 使用不同的数据键将给定数据添加到输出中。

getColumns()

  • 返回列名(出于开发目的)

getquery()

  • 返回由库创建的SQL查询字符串(出于开发目的)

例子

datatables ;
use Ozdemir\\ datatables \\DB\\SQLite;

$path = __DIR__ . \’/../path/to/database.db\’;
$dt = new datatables ( new SQLite($path) );

$dt->query(\’Select id, name, email, age, address, plevel from users\’);

$dt->edit(\’id\’, function($data){
// return a link.
return "<a href=\’user.php?id=" . $data[\’id\’] . "\’>edit</a>";
});

$dt->edit(\’email\’, function($data){
// masks email : mail@mail.com => m***@mail.com
return preg_replace(\’/(?<=.).(?=.*@)/u\’,\’*\’, $data[\’email\’]);
});

$dt->edit(\’address\’, function($data){
// checks user access.
$current_user_plevel = 4;
if ($current_user_plevel > 2 && $current_user_plevel > $data[\’plevel\’]) {
return $data[\’address\’];
}

return \’you are not authorized to view this column\’;
});

$dt->hide(\’plevel\’); // hides \’plevel\’ column from the output

$dt->add(\’action\’, function($data){
// returns a link in a new column
return "<a href=\’user.php?id=" . $data[\’id\’] . "\’>edit</a>";
});

$dt->filter(\’age\’, function (){
// applies custom filtering.
return $this->between(15, 30);
});

echo $dt->generate()->toJson(); // same as \’echo $dt->generate()\’;\”>

    <?php
    require_once \' vendor/autoload.php \' ;

    use Ozdemir \\ datatables \\ datatables ;
    use Ozdemir \\ datatables \\ DB \\ SQLite ;

    $ path = __DIR__ . \' /../path/to/database.db \' ;
    $ dt = new datatables ( new SQLite ( $ path ) );

    $ dt -> query ( \' Select id, name, email, age, address, plevel from users \' );

    $ dt -> edit ( \' id \' , function ( $ data ){
        // return a link.
        return \" <a href=\'user.php?id= \" . $ data [ \' id \' ] . \" \'>edit</a> \" ;
    });

    $ dt -> edit ( \' email \' , function ( $ data ){
        // masks email : mail@mail.com => m***@mail.com
        return preg_replace ( \' /(?<=.).(?=.*@)/u \' , \' * \' , $ data [ \' email \' ]);
    });

    $ dt -> edit ( \' address \' , function ( $ data ){
        // checks user access.
        $ current_user_plevel = 4 ;
        if ( $ current_user_plevel > 2 && $ current_user_plevel > $ data [ \' plevel \' ]) {
            return $ data [ \' address \' ];
        }

        return \' you are not authorized to view this column \' ;
    });
    
    $ dt -> hide ( \' plevel \' ); // hides \'plevel\' column from the output

    $ dt -> add ( \' action \' , function ( $ data ){
        // returns a link in a new column
        return \" <a href=\'user.php?id= \" . $ data [ \' id \' ] . \" \'>edit</a> \" ;
    });

    $ dt -> filter ( \' age \' , function (){
        // applies custom filtering.
        return $ this -> between ( 15 , 30 );
    });

    echo $ dt -> generate ()-> toJson (); // same as \'echo $dt->generate()\'; 

路线图

  • 每个班级更好的测试套件
  • 改善PHP框架的集成

要求

作曲家
datatables > 1.10
PHP> 7.1.3

执照

版权(c)2015Yusufözdemír,根据MIT许可发布

如果您喜欢图书馆,请考虑给星星。

下载源码

通过命令行克隆项目:

git clone https://github.com/n1crack/datatables.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 datatables https://www.zuozi.net/31935.html

Demos
上一篇: Demos
pacbot
下一篇: pacbot
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务