<?php namespace App\Filter; use App\Entity\EntityTrait\EnablableEntityTrait; use Doctrine\ORM\Mapping\ClassMetaData; use Doctrine\ORM\Query\Filter\SQLFilter; class EnabledFilter extends SQLFilter { public function addFilterConstraint(ClassMetadata $targetEntity, $targetTableAlias) { $usingTrait = in_array( EnablableEntityTrait::class, array_keys($targetEntity->reflClass->getTraits()) ); if (!$usingTrait || 'Flux' == $targetEntity->reflClass->getShortName()) { return ''; } $fieldName = 'enabled'; // Add the Where clause in the request $query = sprintf('(%s.%s = %s OR %s.%s IS NULL)', $targetTableAlias, $fieldName, 'true', $targetTableAlias, $fieldName); return $query; } }