Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

49 Zeilen
1.4KB

  1. <?php
  2. namespace Lc\SovBundle\Field\Filter\Ticket;
  3. use Doctrine\ORM\EntityRepository;
  4. use EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto;
  5. use Lc\SovBundle\Field\Filter\FilterTrait;
  6. use Lc\SovBundle\Repository\RepositoryQueryInterface;
  7. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  8. use Symfony\Component\Form\Extension\Core\Type\TextType;
  9. use Symfony\Component\Form\FormBuilderInterface;
  10. /**
  11. * @author La clic ! <contact@laclic.fr>
  12. */
  13. class EmailTicketFilter
  14. {
  15. use FilterTrait;
  16. public function buildProperty(FormBuilderInterface $builder, FieldDto $fieldDto, $options = array())
  17. {
  18. $builder->add(
  19. str_replace('.', '_', $fieldDto->getProperty()),
  20. TextType::class,
  21. array(
  22. 'required' => false,
  23. 'attr' => array(
  24. 'class' => ' input-sm',
  25. 'form' => 'filters-form',
  26. ),
  27. )
  28. );
  29. }
  30. public function applyFilter(RepositoryQueryInterface $repositoryQuery, FieldDto $fieldDto, $filteredValue = null)
  31. {
  32. $fieldProperty = $this->getFieldProperty($fieldDto);
  33. if ($filteredValue !== null) {
  34. $repositoryQuery->joinUser();
  35. $repositoryQuery->andWhere(
  36. '.' . $fieldProperty . ' LIKE :' . $fieldProperty . ' OR user.email LIKE :' . $fieldProperty
  37. );
  38. $repositoryQuery->setParameter($fieldProperty, '%' . $filteredValue . '%');
  39. }
  40. }
  41. }