1. Go to this page and download the library: Download lutfi-nur/query-builder library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lutfi-nur / query-builder example snippets
use LutfiNur\QueryBuilder\Traits\HasDatatableQuery;
class User extends Model
{
use HasDatatableQuery;
const tableName = 'users';
protected $fillable = ['name', 'email', 'birth_date', 'is_blocked'];
}
use Illuminate\Http\Request;
class User extends Model
{
use HasDatatableQuery;
const tableName = 'users';
protected $fillable = ['name', 'email', 'birth_date', 'is_blocked'];
public static function datatable(Request $request): mixed
{
$table = static::tableName;
$dt = static::dtBuilder($table);
// Date columns (auto-converted for PostgreSQL)
$dt->addDateColumn('created_at', '%d-%b-%Y', 'created');
$dt->addDateColumn('updated_at', '%W, %d %M %Y %H:%i:%s', 'updated_str');
// Boolean columns (generates {col}_str + {col}_class)
$dt->addBoolColumn('is_blocked', 'Yes', 'No', 'danger', 'success');
// File link with fallback (IFNULL / COALESCE)
$dt->addFileColumn('avatar_link', url('upload/avatar') . '/', "$table.avatar", url('img/default.png'));
// CONCAT without fallback
$dt->addConcatColumn('doc_link', url('upload/doc') . '/', "$table.document");
// Alias from joined table
$dt->addAliasColumn('province_name', 'prov.name');
// Raw expression (driver-aware via grammar)
$grammar = $dt->grammar();
$dt->addRawColumn('status_label', $grammar->conditional("$table.status = 1", "'Active'", "'Inactive'"));
// Select-only column (not
Route::get('/users/datatable', function (Request $request) {
return User::datatable($request);
});
use LutfiNur\QueryBuilder\Contracts\GrammarInterface;
use LutfiNur\QueryBuilder\DatatableQueryBuilder;
class SqlServerGrammar implements GrammarInterface
{
// Implement all methods: dateFormat, conditional, ifNull, concat, like, getDriverName
}
// In AppServiceProvider::boot()
DatatableQueryBuilder::registerGrammar('sqlsrv', SqlServerGrammar::class);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.