*/ class DateFilter { use FilterTrait; public function buildProperty(FormBuilderInterface $builder, FieldDto $fieldDto, $options = array()) { $builder->add( $builder->create( str_replace('.', '_', $fieldDto->getProperty()), FormType::class, array('inherit_data' => true) ) ->add( 'dateStart', DateType::class, array( 'widget' => 'single_text', 'required' => false, ) ) ->add( 'dateEnd', DateType::class, array( 'widget' => 'single_text', 'required' => false, ) ) ); } public function applyFilter(RepositoryQueryInterface $repositoryQuery, FieldDto $fieldDto, \DateTime $dateStart = null, \DateTime $dateEnd = null) { $fieldProperty = $this->getFieldProperty($fieldDto); if ($dateStart) { $repositoryQuery->andWhere( '.' . $fieldProperty . ' >= :dateStart' )->setParameter('dateStart', $dateStart); } if ($dateEnd) { $dateEnd->setTime(23, 59, 59); $repositoryQuery->andWhere( '.' . $fieldProperty . ' <= :dateEnd' )->setParameter('dateEnd', $dateEnd); } } }