Вы можете добавить условие внутри функции 'query_builder', чтобы она не выполнялась, если условие $options['groupCategory'] == 3 не соблюдается. Например:
Таким образом, если $options['groupCategory'] равен 3, функция 'query_builder' вернет null и запрос не будет выполняться.
Вы можете добавить условие внутри функции 'query_builder', чтобы она не выполнялась, если условие $options['groupCategory'] == 3 не соблюдается. Например:
$builder->add(
'maker',
'entity',
array(
'class' => 'CrbrBundle:CrbrItemMaker',
'property' => 'name',
'required' => false,
'data' => $options['maker'],
'empty_value' => '-- Все --',
'query_builder' => function (EntityRepository $er) use ($options) {
if ($options['groupCategory'] != 3) {
return $er->createQueryBuilder('x')
->innerJoin('x.item', 'i')
->innerJoin('i.category', 'c')
->innerJoin('c.parentCategory', 'h')
->andWhere('h.categoryGroup = :groupCategory')
->setParameter(
'groupCategory',
$options['groupCategory']
);
} else {
return null;
}
},
)
);
Таким образом, если $options['groupCategory'] равен 3, функция 'query_builder' вернет null и запрос не будет выполняться.