Simplifiez sans effort le traitement de vos datatables côté serveur à l'aide de notre bibliothèque PHP ultra-rapide, rationalisant ainsi votre flux de travail. Démo en direct
REMARQUE : la version 2.0+ nécessite php 7.1.3+ (versions prises en charge par PHP)
La méthode recommandée pour installer la bibliothèque est avec Composer
Si vous n'avez pas encore commencé à utiliser composer, je vous recommande fortement de l'utiliser.
Placez un fichier nommé composer.json
à la racine de votre projet, contenant ces informations :
{
"require": {
"ozdemir/ datatables ": "2.*"
}
}
Et puis exécutez :
composer install
Ou exécutez simplement :
composer require ozdemir/ datatables
Ajoutez le chargeur automatique à votre projet :
<?php
require_once ' vendor/autoload.php ' ;
Vous êtes maintenant prêt à commencer à utiliser la bibliothèque php datatables .
<?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 ();
Si vous utilisez un framework php tel que codeigniter ou laravel, vous pouvez utiliser l'adaptateur de base de données approprié.
// 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 ();
});
Ceci est la liste des méthodes publiques disponibles.
requête ($ requête) obligatoire
générer() requis
versJson()
versArray()
ajouter ($ colonne, fonction ($ ligne) {})
modifier ($ colonne, fonction ($ ligne) {})
filtre ($ colonne, fonction () {})
masquer ($ colonnes)
setDistinctResponseFrom($colonne)
setDistinctResponse ($ sortie)
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()';
Compositeur
datatables > 1.10
PHP > 7.1.3
Copyright (c) 2015 Yusuf ÖZDEMİR, publié sous licence MIT