Пользовательская настройка фильтра Sonata Admin в DataGridFilter - PullRequest
0 голосов
/ 09 мая 2018

Я использую администратор сонаты для своего проекта в качестве бэкэнда.

У меня есть модуль, и где у меня есть статус в фильтре, как показано ниже:

$datagridMapper->add('status', '', array('label' => 'Status','field_type' => 'choice','field_options' => array('choices'=> array('Complete' => 1, 'Pending' => 0,'Error' => 2))));

Работает нормально, но заранее фильтр У меня есть арифметические фильтры, которые странно выглядят для фильтрации.

Здесь я прикрепляю изображение, как оно выглядит:

enter image description here

Я хочу удалить эти арифметические фильтры и поместить туда свои, ИЛИ я хочу скрыть этот фильтр только для этого модуля.

Спасибо

1 Ответ

0 голосов
/ 10 мая 2018

Расширенные фильтры зависят от типа рендеринга. Я думаю, что вы ищете что-то похожее, что реализовано, например, в Sonata\DoctrineORMAdminBundle\Filter\ChoiceFilter, вы видите там в getRenderSettings() переменные настройки operator_type. Это определяет, какие операторы установлены в расширенной фильтрации.

Я не нашел способа как просто переопределить эти настройки из AdminClas, но вы можете расширить Sonata \ AdminBundle \ Form \ Type \ Filter \ ChoiceType и создать новый тип с вашими заданными настройками для расширенной фильтрации.

Btw. если вы фильтруете состояние по полю базы данных, например, Doctrine, затем устанавливаете настройки, тогда вы можете просто сделать (второй параметр settings):

protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper
        ->add('status', 'doctrine_orm_choice', ..

Что решит вашу проблему.

...