/** * {@inheritdoc} */ public function setDefaultOptions(OptionsResolverInterface $resolver) { parent::setDefaultOptions($resolver); $queryBuilder = function (Options $options) { $repositoryOptions = array('disabled' => $options['disabled'], 'channel' => $options['channel']); return function (PaymentMethodRepositoryInterface $repository) use($repositoryOptions) { return $repository->getQueryBuidlerForChoiceType($repositoryOptions); }; }; $resolver->setDefaults(array('query_builder' => $queryBuilder, 'channel' => null))->setAllowedTypes(array('channel' => array('Sylius\\Component\\Channel\\Model\\ChannelInterface', 'null'))); }
/** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { parent::configureOptions($resolver); $queryBuilder = function (Options $options) { $repositoryOptions = array('disabled' => $options['disabled'], 'channel' => $options['channel']); return function (PaymentMethodRepositoryInterface $repository) use($repositoryOptions) { return $repository->getQueryBuidlerForChoiceType($repositoryOptions); }; }; $resolver->setDefaults(array('query_builder' => $queryBuilder, 'channel' => null))->setAllowedTypes('channel', [ChannelInterface::class, 'null']); }
/** * {@inheritdoc} */ public function setDefaultOptions(OptionsResolverInterface $resolver) { parent::setDefaultOptions($resolver); $queryBuilder = function (Options $options) { if (!$options['disabled']) { return function (EntityRepository $repository) { return $repository->createQueryBuilder('method')->where('method.enabled = true'); }; } else { return function (EntityRepository $repository) { return $repository->createQueryBuilder('method'); }; } }; $resolver->setDefaults(array('query_builder' => $queryBuilder)); }