Sylius\Bundle\PaymentBundle\Form\Type\PaymentMethodChoiceType::configureOptions PHP Method

configureOptions() public method

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);
    }

Usage Example

Exemplo n.º 1
0
 /**
  * {@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']);
 }