PHP code example of pacolmg / symfony-filter-bundle
1. Go to this page and download the library: Download pacolmg/symfony-filter-bundle 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/ */
pacolmg / symfony-filter-bundle example snippets
...
Pacolmg\SymfonyFilterBundle\PacolmgSymfonyFilterBundle::class => ['all' => true],
...
namespace App\Repository;
use Pacolmg\SymfonyFilterBundle\Repository\BaseRepository;
...
class ArticleRepository extends BaseRepository
{
...
$this->entityManager->getRepository('App:Article')->getAll($filters, $orderBy, $limit, $offset);
[
'type' => Constant that defines the behaviour,
'field' => Field of the Entity (Or fields, separated by pipe ("|")) where search the value,
'value' => Value to compare
]
$this->entityManager->getRepository('App:Article')->getAllCount($filters);
$data = $this->entityManager->getRepository('App:Article')->getAll([
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title',
'value': 'tree'
]
]);
$data = $this->entityManager->getRepository('App:Article')->getAll([
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title',
'value': 'tree'
],
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title|body',
'value': 'cat'
]
]);
$data = $this->entityManager->getRepository('App:Article')->getAll([
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title',
'value': 'tree'
],
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title|body',
'value': 'cat'
],
[
'type': BaseRepository::FILTER_GREATER_EQUAL,
'field': 'publishDate',
'value': date('Y-01-01 00:00')
],
[
'type': BaseRepository::FILTER_LESS_EQUAL,
'field': 'publishDate',
'value': date('Y-31-12 23:59')
]
], ['publishDate' => 'DESC']);
$data = $this->entityManager->getRepository('App:Article')->getAll([
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title',
'value': 'tree'
],
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title|body',
'value': 'cat'
],
[
'type': BaseRepository::FILTER_GREATER_EQUAL,
'field': 'publishDate',
'value': date('Y-01-01 00:00')
],
[
'type': BaseRepository::FILTER_LESS_EQUAL,
'field': 'publishDate',
'value': date('Y-31-12 23:59')
]
], ['publishDate' => 'DESC'], 2, 10);
$totalResults = $this->entityManager->getRepository('App:Article')->getAllCount([
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title',
'value': 'tree'
],
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title|body',
'value': 'cat'
],
[
'type': BaseRepository::FILTER_GREATER_EQUAL,
'field': 'publishDate',
'value': date('Y-01-01 00:00')
],
[
'type': BaseRepository::FILTER_LESS_EQUAL,
'field': 'publishDate',
'value': date('Y-31-12 23:59')
]
]);
$this->entityManager->getRepository('App:Article')->getAllCount($field);
$authors = $this->entityManager->getRepository('App:Article')->getAllCount('author');
$this->filterService->getFiltered(
$repository,
$filters,
$page,
$limit,
$sortBy,
$sortDir
);
$this->filterService->getFiltered(
$this->entityManager->getRepository('App:Article'),
[
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title',
'value': 'tree'
],
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title|body',
'value': 'cat'
],
[
'type': BaseRepository::FILTER_GREATER_EQUAL,
'field': 'publishDate',
'value': date('Y-01-01 00:00')
],
[
'type': BaseRepository::FILTER_LESS_EQUAL,
'field': 'publishDate',
'value': date('Y-31-12 23:59')
]
],
2,
10,
'publishDate',
'DESC'
);
[
'data' => colection of objects,
'total' => Total number of elements filtered by $filters
]
[
'type' => Constant that defines the behaviour,
'field' => Field of the Entity (Or fields separated by pipe ("|")) where find the value,
'request_type' => Type of the value
'request_name' => Name of the parameter
]
$filters = $this->entityManager->getRepository('App:Article')->getAll([
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title',
'request_type': 'string',
'request_name': 't'
]
]);
list($data, $totalData) = $this->filterService->getFiltered($filters);
list($page, $limit) = $this->externalParametersService->getPageAndLimit($request);
$filters = $this->entityManager->getRepository('App:Article')->getAll([
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title',
'request_type': 'string',
'request_name': 't'
]
]);
list($data, $totalData) = $this->filterService->getFiltered($filters, $page, $limit);
$filters = $this->entityManager->getRepository('App:Article')->getAll([
[
'type': BaseRepository::FILTER_LIKE,
'field': 'title',
'request_type': 'string',
'request_name': 't'
],
[
'type': BaseRepository::FILTER_GREATER_EQUAL,
'field': 'publishedAt',
'request_type': 'date',
'request_name': 'from'
],
[
'type': BaseRepository::FILTER_LESS_EQUAL,
'field': 'publishedAt',
'request_type': 'date',
'request_name': 'to'
],
[
'type': BaseRepository::FILTER_EXACT,
'field': 'status',
'request_type': 'int',
'request_name': 's'
]
]);
list($data, $totalData) = $this->filterService->getFiltered($filters);
...
[
'type': BaseRepository::FILTER_IN,
'field': 'status',
'request_type': 'int',
'request_name': 's'
]
...
list($page, $limit) = $this->externalParametersService->getPageAndLimit($request);
$filters = $this->entityManager->getRepository('App:Article')->getAll([
...
]);
list($data, $totalData) = $this->filterService->getFiltered($filters);
$paginationData = [
'nbPages' => ceil($data['total'] / $limit),
'currentPage' => $page,
'url' => $request->get('_route'),
'params' => $request->query->all()
];