iyogesharma/datatable-laravel

包,用于处理服务器和客户端的datatable.js操作

3.6.2 2024-05-22 12:26 UTC

README

Latest Stable Version Total Downloads License

jQuery Datatables For Laravel 5.x

一个简单的包,简化了datatable.js服务器端操作

此包旨在通过使用Eloquent ORM、查询构建器或集合,通过AJAX选项处理服务器端客户端DataTables jQuery插件操作

datatable-laravel 2.0

版本2.0在1.0.3版本的基础上继续改进,引入了一些新功能、改进的代码结构和各种错误修复。

新增

引入了三个新功能,以处理您知道查询是哪个类的实例。目前支持包括:Eloquent Query Builder、Database Query Builder和Eloquent Collection

  echo  datatable()->eloquent(User::query())->init();
  echo  datatable()->collection(User::query())->init();
  echo  datatable()->queryBuilder(User::query())->init();

修改

修改了make和datatable函数。第二个参数是布尔值,默认为false,表示是否需要JSON响应。如果您不传递第二个参数,则需要使用init()函数,就像我们在上一个版本中使用的那样。

echo datatable()->make(User::query(),true);
echo datatable(User::query(),true);

使用辅助函数

echo datatable()->of(User::query())->init();
echo datatable()->of(DB::table('users')->join1()->join2()->select(column1,column2,...columnK))->init();
echo datatable()->of(DB::table('users'))->init();
echo datatable()->of(User::all())->init();

echo datatables(User::query());
echo datatables(DB::table('users')->join1()->join2()->select(column1,column2,...columnK));
echo datatables(DB::table('users'));
echo datatables(User::all());

使用外观

use Datatable;

echo Datatable::of(User::query())->init();
echo Datatable::of(DB::table('users')->join1()->join2()->select(column1,column2,...columnK))->init();
echo Datatable::of(DB::table('users'))->init();
echo Datatable::of(User::all())->init();

echo Datatable::make(User::query());
echo Datatable::make(DB::table('users')->join1()->join2()->select(column1,column2,...columnK));
echo Datatable::make(DB::table('users'));
echo Datatable::make(User::all());

添加/编辑列

use Datatable;

echo Datatable::of(User::query())->add(columnName,function($user){
    return "<a href='' id='$user->id'>$user->name</a>";
})->init();

使用辅助函数

echo datatable()->of(User::query())->add(columnName,function($user){
    return "<a href='' id='$user->id'>$user->name</a>";
})->init();

添加/编辑多个列

use Datatable;

echo Datatable::of(User::query())->addColumns([columnName1=>function($user){
    return "<a href='' id='$user->id'>$user->name</a>";
},columnName2=>function($user){
    return "<a href='' id='$user->id'>$user->name</a>";
}...])->init();

删除列

use Datatable;

echo Datatable::of(User::query())->remove(columnName)->init();

删除多个列

use Datatable;

echo Datatable::of(User::query())->remove([columnName1,columnName2,...])->init();

要求

快速安装

$ composer require iyogesharma/datatable-laravel:"~1.0"

服务提供程序 & 外观(Laravel 5.5上可选)

在您的 config/app.php 文件中注册提供程序和外观。

'providers' => [
    ...,
    YS\Datatable\DatatableServiceProvider::class,
]

'aliases' => [
    ...,
    'Datatable' => YS\Datatable\Facades\Datatable::class,
     "Table"=>YS\\Datatable\\Facades\\Table::class
]

加载CSS文件

</body> 标签之前添加

    {{table()->css()}}

加载脚本文件

</body> 标签之前添加

    {{table()->scripts()}}

加载依赖(CSS/JS)

</body> 标签之前添加

    {{table()->dependencies()}}

初始化基本DataTable

在HTML文件中的document .ready函数内写入

    {{table()->basic()}}

初始化Ajax DataTable

在HTML文件中的document .ready函数内写入

    {{table()->ajax($url,$columns,$configs)}}

示例

    {{table()->dependencies()}}

     <script>
        $(document).ready(function(){
                {{ table()->ajax('ddd/ddd',
                    [   'name',
                        'email',
                        'office'
                    ],[
                        'paging'=>'true',
                        'fixedheader'=>'true',
                        'buttons'=>['colvis','copy','csv','print'],
                        'order'=>[[0,'desc']],
                        'lengthMenu'=> [[ 10, 20, 30, 40, 50], [ 10, 20, 30, 40, 50]],
                    ]
                )}}
        })
    </script>

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件