iyogesharma / datatable-laravel
包,用于处理服务器和客户端的datatable.js操作
3.6.2
2024-05-22 12:26 UTC
Requires
- php: >=7.0.0
- ext-json: *
- iyogesharma/export: ^1.0
- laravel/framework: >=5.0
Requires (Dev)
- orchestra/testbench: >=3.5.0
- phpunit/phpunit: >=6.4
This package is auto-updated.
Last update: 2024-09-22 13:13:33 UTC
README
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();
要求
- PHP >= 7.0
- Laravel 7.x
- jQuery DataTables v1.10.x
- 您可以检查以前的版本以获取不同版本的Laravel
快速安装
$ 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)。有关更多信息,请参阅许可证文件。