1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64:
<?php
namespace ApiBundle\Doctrine\ORM\Filter\User;
use ApiBundle\Doctrine\ORM\Filter\AbstractResourceSearchFilter;
use ApiBundle\Entity\User;
use Doctrine\ORM\QueryBuilder;
use Dunglas\ApiBundle\Api\ResourceInterface;
class UserMandateFilter extends AbstractResourceSearchFilter
{
protected function applyFilter(ResourceInterface $resource, QueryBuilder $queryBuilder, array $queryValues)
{
if (!isset($queryValues['mandate']) || !is_string($queryValues['mandate'])) {
return;
}
$mandateId = $this->getFilterValueFromUrl($queryValues['mandate']);
$queryBuilder
->leftJoin('o.jobs', 'user_jobs_alias')
->andWhere('user_jobs_alias.mandate = :user_mandate_id')
->setParameter('user_mandate_id', $mandateId)
;
}
protected function getResourceClass()
{
return User::class;
}
public function getDescription(ResourceInterface $resource)
{
return [];
}
}