1 | <?php |
||
14 | class StringFilter extends AbstractComparatorFilter |
||
15 | { |
||
16 | const TYPE_EQUAL = 'equal'; |
||
17 | const TYPE_EMPTY = 'empty'; |
||
18 | const TYPE_NOT_EMPTY = 'not_empty'; |
||
19 | const TYPE_CONTAINS = 'contains'; |
||
20 | const TYPE_NOT_CONTAINS = 'not_contains'; |
||
21 | const TYPE_STARTS_WITH = 'starts_with'; |
||
22 | const TYPE_ENDS_WITH = 'ends_with'; |
||
23 | const TYPE_IN = 'in'; |
||
24 | const TYPE_NOT_IN = 'not_in'; |
||
25 | |||
26 | private static $comparatorMap = [ |
||
27 | self::TYPE_EQUAL => Comparison::EQUALS, |
||
28 | self::TYPE_EMPTY => Comparison::NULL, |
||
29 | self::TYPE_NOT_EMPTY => Comparison::NOT_NULL, |
||
30 | self::TYPE_CONTAINS => Comparison::CONTAINS, |
||
31 | self::TYPE_NOT_CONTAINS => Comparison::NOT_CONTAINS, |
||
32 | self::TYPE_STARTS_WITH => Comparison::CONTAINS, |
||
33 | self::TYPE_ENDS_WITH => Comparison::CONTAINS, |
||
34 | self::TYPE_IN => Comparison::IN, |
||
35 | self::TYPE_NOT_IN => Comparison::NOT_IN, |
||
36 | ]; |
||
37 | |||
38 | /** |
||
39 | * {@inheritdoc} |
||
40 | */ |
||
41 | public function buildForm(FormBuilderInterface $builder, array $options) |
||
49 | |||
50 | /** |
||
51 | * {@inheritdoc} |
||
52 | */ |
||
53 | public function getExpression(string $fieldName, array $data): Expression |
||
63 | |||
64 | /** |
||
65 | * {@inheritdoc} |
||
66 | */ |
||
67 | public function configureOptions(OptionsResolver $options) |
||
71 | |||
72 | /** |
||
73 | * {@inheritdoc} |
||
74 | */ |
||
75 | public function isApplicable(array $filterData): bool |
||
79 | |||
80 | protected function getComparatorMap(): array |
||
84 | |||
85 | private function getValue($comparator, $value) |
||
110 | } |
||
111 |