2017 © Pedro Peláez
 

library criteria-builder

A simple library to transform HTTP parameters in Doctrine Criteria

image

bipiane/criteria-builder

A simple library to transform HTTP parameters in Doctrine Criteria

  • Thursday, June 21, 2018
  • by bipiane
  • Repository
  • 1 Watchers
  • 0 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Latest Stable Version Total Downloads License, (*1)

Doctrine Criteria Builder from HTTP parameters in PHP

Installation

composer require bipiane/criteria-builder

Example

<?php
/**
 * GET ../api/users?
 *          limit=12&
 *          offset=1&
 *          sort=city-name&
 *          order=ASC&
 *          lastname[like]=Pian%&
 *          city-state-code[ne]=null&
 *          city-state-country=1&
 *          enabled=true&
 *          id[ge]=50
 * @param Request $request
 */
public function exampleAction(Request $request)
{
    $criteriaUser = [
        'id' => CriteriaDoctrine::CRITERIAS_NUMBER,
        'name' => CriteriaDoctrine::CRITERIAS_STRING,
        'lastname' => CriteriaDoctrine::CRITERIAS_STRING,
        'city' => [
            'id' => CriteriaDoctrine::CRITERIAS_NUMBER,
            'name' => CriteriaDoctrine::CRITERIAS_STRING,
            'state' => [
                'id' => CriteriaDoctrine::CRITERIAS_NUMBER,
                'name' => CriteriaDoctrine::CRITERIAS_STRING,
                'code' => CriteriaDoctrine::CRITERIAS_STRING,
                'country' => [
                    'id' => CriteriaDoctrine::CRITERIAS_NUMBER,
                    'name' => CriteriaDoctrine::CRITERIAS_STRING,
                    'enabled' => CriteriaDoctrine::CRITERIAS_BOOLEAN,
                ],
                'enabled' => CriteriaDoctrine::CRITERIAS_BOOLEAN,
            ],
            'enabled' => CriteriaDoctrine::CRITERIAS_BOOLEAN,
        ],
        'enabled' => CriteriaDoctrine::CRITERIAS_BOOLEAN,
    ];

    try {
        $qb = $this->getDoctrine()->getManager()
            ->getRepository('ModelBundle:User')
            ->createQueryBuilder('usr');

        $qb = CriteriaBuilder::fetchFromQuery(
            $qb,
            $request->query->all(),
            $criteriaUser
        );

        var_dump($qb->getQuery()->getArrayResult());
    } catch (CriteriaException $e) {
    }
    // ...
}

Testing

./vendor/bin/simple-phpunit

The Versions

21/06 2018

dev-master

9999999-dev https://github.com/bipiane/criteria-builder

A simple library to transform HTTP parameters in Doctrine Criteria

  Sources   Download

MIT

The Requires

 

by Ivan Pianetti