public configureOptions ( Symfony\Component\OptionsResolver\OptionsResolver $resolver ) | ||
$resolver | Symfony\Component\OptionsResolver\OptionsResolver |
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(['choices' => function (Options $options) {
if (isset($options['subject'])) {
return $this->paymentMethodsResolver->getSupportedMethods($options['subject']);
}
return $this->paymentMethodRepository->findAll();
}, 'choice_value' => 'id', 'choice_label' => 'name', 'choice_translation_domain' => false])->setDefined(['subject'])->setAllowedTypes('subject', PaymentInterface::class);
}
/** * {@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']); }