Comment Filtrer avec query builder with Entity
Bonjour,
Sous Symfony 2.3 avec JordiLlonchCrudGeneratorBundle :
J'ai une entité Activité qui contient une relation ManyToOne avec une entité Client (JoinColumn(nullable=false))
J'ai généré mon CRUD avec JordiLlonchCrudGeneratorBundle et ça marche très bien.
Seulement, quand j'affiche la liste des activités, j'aimerai pouvoir filtrer par client.
J'ai donc créé une fonction dans ClientRepository.php :
Code:
1 2 3 4 5 6 7 8 9 10
| public function findActifClients()
{
$qb = $this->createQueryBuilder('a');
$qb->where('a.actif = :actif')
->setParameter('actif', true)
->orderBy('a.nom', 'ASC');
return $qb;
} |
Ensuite j'ai édité mon ActiviteFilterType.php de la manière suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class ActiviteFilterType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('nom', 'filter_text')
->add('client', 'entity', array(
'class' => 'Too\ClientBundle\Entity\Client',
'property' => 'nom',
'required' => false,
'query_builder' => function(EntityRepository $er) {
return $er->findActifClients();
}
))
... |
Maintenant quand j'affiche la liste des activités je trouve bien la possibilité de filtrer par client mais le problème arrive quand je veux effectivement filtrer sur un client donné :
ça n'a aucun effet - la liste des activité reste la même comme si je n'avais pas de filtre.
Il y a quelque chose qui m'echappe là
Pouvez vous m'aider ?