src/Form/Type/CommandeType.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Form\Type;
  3. use Symfony\Component\Form\AbstractType;
  4. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  5. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  6. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  7. use Symfony\Component\Form\Extension\Core\Type\IntegerType;
  8. use Symfony\Component\Form\Extension\Core\Type\TextType;
  9. use Symfony\Component\Form\FormBuilderInterface;
  10. use Symfony\Component\OptionsResolver\OptionsResolver;
  11. /**
  12.  * CommandeType
  13.  */
  14. class CommandeType extends AbstractType
  15. {
  16.     protected $type;
  17.     public function buildForm(FormBuilderInterface $builder, array $options)
  18.     {
  19.         $builder
  20.             ->add('nom'TextType::class, array(
  21.                 'attr' => array(
  22.                     'class' => 'form--input-lastname',
  23.                     'placeholder' => 'Votre nom',
  24.                     'pattern' => '.{3,100}',
  25.                 ),
  26.                 'label' => false,
  27.                 'required' => true
  28.             ))
  29.             ->add('prenom'TextType::class, array(
  30.                 'attr' => array(
  31.                     'class' => 'form--input-firstname',
  32.                     'placeholder' => 'Votre prénom',
  33.                     'pattern' => '.{3,100}',
  34.                 ),
  35.                 'label' => false,
  36.                 'required' => true
  37.             ))
  38.             ->add('email'EmailType::class, array(
  39.                 'attr' => array(
  40.                     'class' => 'form--input-email',
  41.                     'placeholder' => 'votreadressemail@mail.com',
  42.                     'pattern' => '.{3,255}',
  43.                 ),
  44.                 'label' => false,
  45.                 'required' => true
  46.             ))
  47.             ->add('tel'TextType::class, array(
  48.                 'attr' => array(
  49.                     'class' => 'form--input-phone',
  50.                     'placeholder' => 'Votre téléphone portable',
  51.                     'pattern' => '.{3,20}',
  52.                 ),
  53.                 'required' => true,
  54.                 'label' => false,
  55.             ))
  56.             ->add('adresse'TextType::class, array(
  57.                 'attr' => array(
  58.                     'class' => 'form--input-address',
  59.                     'placeholder' => 'Votre Adresse',
  60.                     'pattern' => '.{3,255}',
  61.                 ),
  62.                 'label' => 'form.adresse',
  63.                 'required' => true
  64.             ))
  65.             ->add('complement'TextType::class, array(
  66.                 'attr' => array(
  67.                     'class' => 'form--input-addressbis',
  68.                     'placeholder' => 'Code, étage, batiment',
  69.                 ),
  70.                 'label' => 'form.complement',
  71.                 'required' => false
  72.             ))
  73.             ->add('codePostal'TextType::class, array(
  74.                 'attr' => array(
  75.                     'class' => 'form--input-codepostal',
  76.                     'placeholder' => 'Entrer un code postal',
  77.                     'pattern' => '.{2,10}',
  78.                 ),
  79.                 'label' => 'form.codePostal',
  80.                 'required' => true,
  81.             ))
  82.             ->add('sexe'ChoiceType::class, array(
  83.                 'choices' => [
  84.                     'homme' => 'homme',
  85.                     'femme' => 'femme',
  86.                     'enfant' => 'enfant',
  87.                     'bebe' => 'bebe'
  88.                 ],
  89.                 'choice_translation_domain' => 'messages',
  90.                 'translation_domain' => 'messages',
  91.                 'placeholder' => 'Votre sexe de naissance',
  92.                 'attr' => array(
  93.                     'class' => 'form--input-sexe',
  94.                     'placeholder' => 'Votre sexe de naissance',
  95.                     'pattern' => '.{3,20}',
  96.                 ),
  97.                 'label' => false,
  98.                 'required' => true
  99.             ))
  100.             ->add('age'IntegerType::class, array(
  101.                 'attr' => array(
  102.                     'min' => 1,
  103.                     'max' => 99,
  104.                     'class' => 'form--input-age',
  105.                     'placeholder' => 'Votre âge',
  106.                     'pattern' => '.{1,3}',
  107.                 ),
  108.                 'label' => 'form.age',
  109.                 'required' => true
  110.             ))
  111.             ->add('latitude'HiddenType::class, array('mapped' => false))
  112.             ->add('longitude'HiddenType::class, array('mapped' => false))
  113.             ->add('stripeCustomer'HiddenType::class)
  114.             ->add('paymentMethod'HiddenType::class)
  115.             ->add('robot'HiddenType::class, array('mapped' => false))
  116.         ;
  117.     }
  118.     public function setDefaultOptions(OptionsResolver $resolver)
  119.     {
  120.         $resolver->setDefaults(array(
  121.             'data_class' => 'App\Entity\Commande',
  122.             'cascade_validation' => 'true',
  123.             'validation_groups' => array('registration'),
  124.             'csrf_protection' => 'true',
  125.             'csrf_field_name' => 'true',
  126.             'intention' => 'commande_item'
  127.         ));
  128.     }
  129.     public function getName()
  130.     {
  131.         return 'app_commandetype';
  132.     }
  133. }