Я использую администратора сонаты для своего проекта в качестве бэкэнда.
У меня есть модуль, и у меня есть статус в фильтре, как показано ниже:
$datagridMapper->add('status', '', array('label' => 'Status','field_type' => 'choice','field_options' => array('choices'=> array('Complete' => 1, 'Pending' => 0,'Error' => 2))));
Он работает нормально, но в предварительном фильтре я получил арифметические фильтры, которые выглядят странно с точки зрения функциональности фильтрации.
Здесь я прикрепляю это изображение, как оно выглядит:
Я хочу удалить эти арифметические фильтры и разместить там свои собственные, ИЛИ я хочу скрыть этот фильтр только для этого модуля.
Спасибо





Расширенные фильтры зависят от типа рендеринга. Я думаю, что вы ищете что-то похожее, что реализовано, например, в Sonata\DoctrineORMAdminBundle\Filter\ChoiceFilter, вы видите там в настройках переменной getRenderSettings()operator_type. Это определяет, какие операторы установлены в расширенной фильтрации.
Я не нашел способа просто переопределить эти настройки из AdminClas, но вы можете расширить Sonata \ AdminBundle \ Form \ Type \ Filter \ ChoiceType и создать новый тип с вашими определенными настройками для расширенной фильтрации.
Кстати. если вы фильтруете статус по полю базы данных, например, Doctrine, а затем устанавливаете настройки, вы можете просто сделать (второй параметр настройки):
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('status', 'doctrine_orm_choice', ..
Что решит вашу проблему.