I am using sonata admin to set up an admin class with four filters. These filters are multiple choice and related to other entities. I want to make these filters dependent and run one filter query to filter the data considering all selected filter values. So far I just used sonata callback filter, but it can not filter when I select two or three fields to filter data. Is there a technique to override the query sonata run for filters?
$datagridMapper
->add('campaign', null, array(), 'entity', array(
'class' => 'AppPolioDbBundle:Campaign',
'choice_label' => 'campaignName', 'multiple' => true,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->groupBy('u.campaignName');
},
))
->add('region', 'doctrine_orm_callback', array(
'callback' => array($this, 'callbackFilterRegion'),
'field_type' => 'checkbox'
),
'choice',
array('choices' => $this -> getRegionList(), 'multiple' => true))
->add('district.districtCode', null, array(), 'entity', array(
'class' => 'AppPolioDbBundle:District',
'choice_label' => 'districtName', 'multiple' => true,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->groupBy('u.districtName');
},
))