当社の超高速 PHP ライブラリを使用してdatatablesサーバー側処理を簡単に簡素化し、ワークフローをシームレスに合理化します。ライブデモ
注:バージョン 2.0 以降には php 7.1.3 以降が必要です (php でサポートされているバージョン)
ライブラリをインストールする推奨方法は Composer を使用することです
Composer の使用をまだ始めていない場合は、使用することを強くお勧めします。
次の情報を含む、 composer.json
という名前のファイルをプロジェクトのルートに置きます。
{
"require": {
"ozdemir/ datatables ": "2.*"
}
}
そして、次を実行します。
composer install
または単に実行します:
composer require ozdemir/ datatables
オートローダーをプロジェクトに追加します。
<?php
require_once ' vendor/autoload.php ' ;
これで、 datatables php ライブラリの使用を開始する準備が整いました。
<?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 ();
codeigniter や laravel などの php フレームワークを使用している場合は、関連するデータベース アダプターを使用できます。
// 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 ());
}
}
// 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 ();
});
これは、利用可能なパブリック メソッドのリストです。
クエリ($query)が必要です
生成()が必要です
toJson()
toArray()
add($column, function( $row ){})
edit($column, function($row){})
フィルター($column, function(){})
非表示($column)
setDistinctResponseFrom($column)
setDistinctResponse($output)
getColumns()
getQuery()
<?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 : [email protected] => 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()';
作曲家
datatables > 1.10
PHP > 7.1.3
Copyright (c) 2015 Yusuf ÖZDEMİR、MIT ライセンスに基づいてリリース