src/Leads/Form/PopupType.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Leads\Form;
  3. use App\Base\Form\PhoneType;
  4. use App\Base\Form\UniqueIdFormTrait;
  5. use App\Leads\Entity\PopupRecall;
  6. use App\Leads\Service\LeadFormFillInterface;
  7. use App\Leads\Service\LeadInterface;
  8. use Symfony\Component\Form\AbstractType;
  9. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  10. use Symfony\Component\Form\FormBuilderInterface;
  11. use Symfony\Component\Form\FormInterface;
  12. use Symfony\Component\OptionsResolver\OptionsResolver;
  13. use Symfony\Component\Validator\Constraints\Regex;
  14. class PopupType extends AbstractType implements LeadFormFillInterface
  15. {
  16.     // Для того чтобы можно было корректно выводить несколько форм на страницу и идентификаторы не пересекались
  17.     use UniqueIdFormTrait;
  18.     public function buildForm(FormBuilderInterface $builder, array $options)
  19.     {
  20.         $builder
  21.             ->add('name'null, [
  22.                 'attr' => [
  23.                     'placeholder' => 'Ваше имя',
  24.                 ]
  25.             ])
  26.             ->add('phone'PhoneType::class)
  27.             ->add('submit'SubmitType::class, [
  28.                 'label' => 'Отправить'
  29.             ])
  30.         ;
  31.     }
  32.     public function configureOptions(OptionsResolver $resolver)
  33.     {
  34.         $resolver->setDefaults([
  35.             'data_class' => PopupRecall::class,
  36.             'unique_id' => true
  37.         ]);
  38.     }
  39.     public function fillLead(FormInterface $formLeadInterface $request): LeadInterface
  40.     {
  41.         /** @var PopupRecall $entity */
  42.         $entity $form->getData();
  43.         $request->setName($entity->getName());
  44.         $request->setPhone($entity->getPhone());
  45.         $request->setType('Заявка с поп-ап');
  46.         $request->setEntity($entity);
  47.         return $request;
  48.     }
  49. }