Sonata\BasketBundle\Form\ShippingType::buildForm PHP Метод

buildForm() публичный Метод

public buildForm ( Symfony\Component\Form\FormBuilderInterface $builder, array $options )
$builder Symfony\Component\Form\FormBuilderInterface
$options array
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $basket = $builder->getData();
        if (!$basket instanceof BasketInterface) {
            throw new \RuntimeException('Please provide a BasketInterface instance');
        }
        $methods = $this->deliverySelector->getAvailableMethods($basket, $basket->getDeliveryAddress());
        if (count($methods) === 0) {
            throw new UndeliverableCountryException($basket->getDeliveryAddress());
        }
        $choices = array();
        foreach ($methods as $method) {
            $choices[$method->getCode()] = $method->getName();
        }
        reset($methods);
        $method = $basket->getDeliveryMethod() ?: current($methods);
        $basket->setDeliveryMethod($method ?: null);
        $sub = $builder->create('deliveryMethod', 'choice', array('expanded' => true, 'choice_list' => new SimpleChoiceList($choices)));
        $sub->addViewTransformer(new DeliveryMethodTransformer($this->deliveryPool), true);
        $builder->add($sub);
    }