trinetus/symfony-datatables

Symfony and JS datatables bridge with pagination/infinite scrolling and filtering support. JS part is not included.

Maintainers

Package info

gitlab.com/trinetus/symfony-datatables

Issues

pkg:composer/trinetus/symfony-datatables

Statistics

Installs: 755

Dependents: 0

Suggesters: 0

Stars: 0

1.0.2 2026-06-21 12:49 UTC

This package is auto-updated.

Last update: 2026-06-21 09:50:56 UTC


README

Symfony Datatables

Symfony Datatables

Symfony bridge for JS DataTables: builds Doctrine Criteria for filtering, search, ordering and pagination from the request, and serializes the server-side response as JSON.

Documentation

Full documentation is available at trinetus.gitlab.io/symfony-datatables.

Requirements

  • PHP 8.0+
  • Symfony 6 or 7 (serializer, http-foundation, property-access)
  • Doctrine Collections 1.6+ or 2.0+

Installation

composer require trinetus/symfony-datatables

Quick Start

Use the trait in a controller and let it build the Doctrine Criteria from the request:

use Doctrine\Common\Collections\Criteria;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Trinetus\SymfonyDatatables\Traits\DatatablesControllerTrait;

class ProductController extends AbstractController
{
    use DatatablesControllerTrait;

    public function list(Request $request, ProductRepository $repository): Response
    {
        $this->setRequest($request);

        $criteria = $this->getFilterCriteria();
        $criteria = $this->getSearchCriteria(['title', 'description'], $criteria);

        $query = $repository->findByCriteria($criteria);
        $totalRecords = $repository->countFromQuery($query);

        $rows = $query->addCriteria($this->getPaginationCriteria())->getQuery()->getResult();

        return $this->datatablesJson($rows, $totalRecords);
    }
}

See Usage for the request parameters, repository helpers, and serialization options.

Links

License

The MIT License. See LICENSE for details.