Source of file Repository.tpl.php

Size: 1,366 Bytes - Last Modified: 2023-11-16T22:56:03+01:00

/home/websites/teicee/packagist/site/phpdoc/conf/../vendor/teicee/make-bundle/src/Resources/skeleton/doctrine/Repository.tpl.php

12345678910111213141516171819202122232425262728293031323334353637383940414243
<?= "<?php\n" ?>
namespace <?= $namespace ?>;

#use Doctrine\ORM\EntityRepository as BaseRepository;
use TIC\DormBundle\Base\TICRepository as BaseRepository;
#use <?= $registry_class ?>;
#use <?= $entity_class ?>;
use Doctrine\ORM\QueryBuilder;

/**
 * Repository pour les requêtes sur les entités <?= $entity_name ?>.
 *
 * @method <?= $entity_name ?>|null find($id, $lockMode = null, $lockVersion = null)
 * @method <?= $entity_name ?>|null findOneBy(array $criteria, array $orderBy = null)
 * @method <?= $entity_name ?>[]    findAll()
 * @method <?= $entity_name ?>[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
 */
class <?= $class_name ?> extends BaseRepository
{
#	public $alias  = '<?= $entity_alias ?>';
#	public $sortBy = ['name' => 'ASC'];

	/**
	 * Application des filtres sur un query builder.
	 *
	 * @param  array  $filters
	 * @param  mixed  $qb
	 * @return QueryBuilder
	 */
	public function qbFilters(array $filters = [], $qb = null): QueryBuilder
	{
		$alias = $a = $this->initQB(parent::qbFilters($filters, $qb)) . '.';
		
		foreach ($filters as $type => $value) switch ($type) {
			// ajouter ici les filtres personnalisés pour les recherches de ce repository...
			case 'name':
				if ($value !== null) $qb->andWhere($a.$type.' = :'.$type)->setParameter($type, $value);
				break;
		}
		return $qb;
	}

}