<?php
declare(strict_types=1);
namespace App\Form;
use App\Component\Order\Model\Order;
use Symfony\Bundle\FrameworkBundle\Translation\Translator;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Translation\TranslatorInterface;
class SetDiscountType extends AbstractType
{
/**
* @var UrlGeneratorInterface
*/
private $urlGenerator;
/**
* @var TranslatorInterface
*/
private $translator;
public function __construct(UrlGeneratorInterface $urlGenerator, TranslatorInterface $translator)
{
$this->urlGenerator = $urlGenerator;
$this->translator = $translator;
}
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->setAction($this->urlGenerator->generate('cart.setDiscount'));
$builder->add(
'id',
HiddenType::class
);
$builder->add(
'discountCode',
TextType::class,
[
'mapped' => false,
'required' => true,
'label' => 'app.cart.setDiscount.placeholder',
]
);
$builder->add(
'submit',
SubmitType::class,
[
'label' => 'app.cart.setDiscount.button',
'attr' => [
'class'=>'btn-primary btn'
]
]
);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Order::class,
));
}
}