Filter Form Types
Filter Form Types are PHP classes that represent filters and extend standard Symfony form types. Each filter form type is a compound and consists of two fields:
a field for filter value (named “value”)
a field for filter operator (named “type”)
The following filters form types are available:
Class |
Name |
Short Description |
---|---|---|
FilterType |
oro_type_filter |
Basic type for all filters, declares two children, value and type |
TextFilterType |
oro_type_text_filter |
Represents text filter form |
NumberFilterType |
oro_type_number_filter |
Represents number filter form |
NumberRangeFilterType |
oro_type_number_range_filter |
Represents number range filter form |
ChoiceFilterType |
oro_type_choice_filter |
Represents choice filter form |
EntityFilterType |
oro_type_entity_filter |
Represents entity filter form |
BooleanFilterType |
oro_type_boolean_filter |
Represents boolean filter form |
DateRangeFilterType |
oro_type_date_range_filter |
Represents date filter form |
DateTimeRangeFilterType |
oro_type_datetime_range_filter |
Represents date and time filter form |
DateRangeType |
oro_type_date_range |
This form type is used by oro_type_date_range_filter as field type |
DateTimeRangeType |
oro_type_datetime_range |
This form type is used by oro_type_datetime_range_filter as field type |
DateGroupingFilterType |
oro_type_date_grouping_filter |
Represents date grouping filter |
SkipEmptyPeriodsFilterType |
oro_type_skip_empty_periods_filter |
Represents skip empty periods filter |
oro_type_filter Form Type
Children
value
type
Options
field_type
field_options
operator_choices
operator_type
operator_options
show_filter
Default Options
field_type = TextType::class
operator_type = ChoiceType::class
show_filter = False
Class
Oro\Bundle\FilterBundle\Form\Type\Filter\FilterType
Options Description
field_type - This option declares the type of the value child element.
field_options - Value of this option will be used as the options array for the value field.
operator_choices - Value of this option will be used as the value of the “choices” option of the type field.
operator_type - This option declares the type of type child element. By default, the velue is “choice”.
operator_options - Value of this option will be used as the options array for the type field.
show_filter - If FALSE, then the filter will be hidden when it is rendered in the filter list.
oro_type_text_filter Form Type
Inherit Options
field_type
field_options
operator_choices
operator_type
operator_options
show_filter
Default Options
field_type = text
operator_choices
TextFilterType::TYPE_CONTAINS
TextFilterType::TYPE_NOT_CONTAINS
TextFilterType::TYPE_EQUAL
Parent Type
oro_type_filter
Class
Oro\Bundle\FilterBundle\Form\Type\Filter\TextFilterType
oro_type_number_filter Form Type
Options
data_type
fromatter_options
Inherit Options
field_type
field_options
operator_choices
operator_type
operator_options
show_filter
Default Options
field_type = text
operator_choices
NumberFilterType::TYPE_GREATER_EQUAL
NumberFilterType::TYPE_GREATER_THAN
NumberFilterType::TYPE_EQUAL
NumberFilterType::TYPE_LESS_EQUAL
NumberFilterType::TYPE_LESS_THAN
data_type = NumberFilterType::DATA_INTEGER
Parent Type
oro_type_filter
Class
Oro\Bundle\FilterBundle\Form\Type\Filter\NumberFilterType
Options
data_type - This option can be used for configuration of value field type. Can be a value of one of constants: ::DATA_INTEGER or NumberFilterType::DATA_DECIMAL.
formatter_options
In addition to data_type option, this option can contain parameters for number formatter that is used by value field. Available attributes are:
decimals - maximum fraction digits
grouping - use grouping to separate digits
orderSeparator - symbol of grouping separator
decimalSeparator - symbol of decimal separator.
oro_type_number_range_filter Form Type
Options
data_type
formatter_options
Inherit Options
field_type
field_options
operator_choices
operator_type
operator_options
show_filter
Default Options
field_type = text
operator_choices
NumberRangeFilterType::TYPE_BETWEEN
NumberRangeFilterType::TYPE_NOT_BETWEEN
NumberRangeFilterType::TYPE_GREATER_EQUAL
NumberRangeFilterType::TYPE_GREATER_EQUAL
NumberRangeFilterType::TYPE_GREATER_THAN
NumberRangeFilterType::TYPE_EQUAL
NumberRangeFilterType::TYPE_LESS_EQUAL
NumberRangeFilterType::TYPE_LESS_THAN
FilterUtility::TYPE_EMPTY
FilterUtility::TYPE_NOT_EMPTY
data_type = NumberFilterType::DATA_INTEGER
Parent Type
oro_type_number_filter
Class
Oro\Bundle\FilterBundle\Form\Type\Filter\NumberRangeFilterType
Options
data_type - This option can be used for configuration of value field type. Can be a value of one of constants: NumberFilterType::DATA_INTEGER or NumberFilterType::DATA_DECIMAL.
formatter_options
In addition to data_type option, this option can contain parameters for number formatter that is used by value field. Available attributes are:
decimals - maximum fraction digits
grouping - use grouping to separate digits
orderSeparator - symbol of grouping separator
decimalSeparator - symbol of decimal separator.
oro_type_choice_filter Form Type
Inherit Options
field_type
field_options
operator_choices
operator_type
operator_options
show_filter
Default Options
field_type = choice
operator_choices
ChoiceFilterType::TYPE_CONTAINS
ChoiceFilterType::TYPE_NOT_CONTAINS
Parent Type
oro_type_filter
Class
Oro\Bundle\FilterBundle\Form\Type\Filter\ChoiceFilterType
oro_type_entity_filter Form Type
Inherit Options
field_type
field_options
operator_choices
operator_type
operator_options
show_filter
Default Options
field_type = entity
Parent Type
oro_type_choice_filter
Class
Oro\Bundle\FilterBundle\Form\Type\Filter\EntityFilterType
oro_type_boolean_filter Form Type
Inherit Options
field_type
field_options
operator_choices
operator_type
operator_options
show_filter
Default Options
field_options = choices
BooleanFilterType::TYPE_YES
BooleanFilterType::TYPE_NO
Parent Type
oro_type_choice_filter
Class
Oro\Bundle\FilterBundle\Form\Type\Filter\BooleanFilterType
oro_type_date_range_filter Form Type
Options
widget_options
type_values
Inherit Options
field_type
field_options
operator_choices
operator_type
operator_options
show_filter
Default Options
field_type = oro_type_date_range
widget_options = [“dateFormat” => “mm/dd/yy”, “firstDay” => 0]
operator_choices
DateRangeFilterType::TYPE_BETWEEN
DateRangeFilterType::TYPE_NOT_BETWEEN
type_values
DateRangeFilterType::TYPE_BETWEEN
DateRangeFilterType::TYPE_NOT_BETWEEN
Parent Type
oro_type_filter
Class
Oro\Bundle\FilterBundle\Form\Type\Filter\DateRangeFilterType
Options Description
widget_options - Value of this option will be used by javascript widget to correctly display its data. Default value of this option depend from of current application locale options.
type_values - Value of this option will be used by javascript widget to generate valid hint of current filter value (strings like “between %start% and %end%”, “before %start%”, “after %end%”, “not between %start%”, etc)
oro_type_datetime_range_filter Form Type
Options
widget_options
type_values
Inherit Options
field_type
field_options
operator_choices
operator_type
operator_options
show_filter
type_values
widget_options
Default Options
field_type = oro_type_datetime_range
widget_options = [“dateFormat” => “mm/dd/yy”, “timeFormat” => “hh:mm tt”, “firstDay” => 0]
Parent Type
oro_type_date_range_filter
Class
Oro\Bundle\FilterBundle\Form\Type\Filter\DateRangeFilterType
oro_type_date_range Form Type
Children
start
end
Options
field_type
field_options
start_field_options
end_field_options
Default Options
field_type = “date”
Class
Oro\Bundle\FilterBundle\Form\Type\DateRangeType
Options Description
field_type - This option declares type of start and end child elements.
field_options - Value of this option will be used as options array for start and end fields.
start_field_options - Value of this option will be used as options array for start field.
end_field_options - Value of this option will be used as options array for end field.
oro_type_datetime_range Form Type
Default Options
field_type = “datetime”
Parent Type
oro_type_date_range
Class
Oro\Bundle\FilterBundle\Form\Type\DateTimeRangeType
oro_type_date_grouping_filter Form Type
Options
data_name
joined_column
not_nullable_field
calendar_entity
target_entity
Inherit Options
field_type
field_options
operator_choices
operator_type
operator_options
show_filter
field_type
operator_choices
Default Options
calendar_table = “calendarDate”
calendar_column = ‘date’
calendar_table_for_grouping = ‘calendarDate1’
calendar_column_for_grouping = ‘date’
joined_table = ‘joinedTableAlias’
target_column = ‘date’
Parent Type
oro_type_choice_filter
Class
Oro\Bundle\FilterBundle\Form\Type\Filter\DateGroupingFilterType
oro_type_skip_empty_periods_filter Form Type
Options
not_nullable_field
Inherit Options
field_type
field_options
operator_choices
operator_type
operator_options
show_filter
field_type
operator_choices
Parent Type
oro_type_choice_filter
Class
Oro\Bundle\FilterBundle\Form\Type\Filter\DateGroupingFilterType
Example of Usage
You can use filter form types as any other form type in Symfony. For example, consider you have a form with three filters. In your form type you should add code like this:
class MyFilterFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
// Add some form fields
// ...
// Add filters
$builder->add('name', TextFilterType::class);
$builder->add('salary', NumberFilterType::class);
$builder->add('hobby', ChoiceFilterType::class, [
field_options' => [
'choices' => [1 => 'Coding', 2 => 'Hiking', 3 => 'Photography'],
'multiple' => true
]
]);
}
}
References
Symfony 2 Form Types