vaibhavpandeyvpz/doctrine-datatables

Helper library to implement Doctrine powered server-side processing for jquery-datatables with joins, search, filtering and ordering.

Latest Version Scrutinizer Code Quality SensioLabsInsight Total Downloads Software License

Install

composer require vaibhavpandeyvpz/doctrine-datatables

Basic Usage

<?php

use Doctrine\DataTables;

$connection = /** instanceof Doctrine\DBAL\Connection */;

$datatables = (new DataTables\Builder())
    ->withIndexColumn('id')
    ->withQueryBuilder(
        $connection->createQueryBuilder()
            ->select('*')
            ->from('users')
    )
    ->withRequestParams($_GET);

echo json_encode($datatables->getData());

Advanced Usage (Joins)

<?php

use Doctrine\DataTables;

$connection = /** instanceof Doctrine\DBAL\Connection */;

$datatables = (new DataTables\Builder())
    ->withColumnAliases([
        'id' => 'u.id',
        'created_at' => 'u.created_at',
        'updated_at' => 'u.updated_at',
    ])
    ->withIndexColumn('id')
    ->withQueryBuilder(
        $connection->createQueryBuilder()
            ->select('u.*', 'p.first_name', 'p.last_name')
            ->from('users', 'u')
            ->leftJoin('u', 'profiles', 'p', 'p.user_id = u.id')
    )
    ->withRequestParams($_GET);

echo json_encode($datatables->getData());

License

See LICENSE.md file.