src/Leads/Form/LayoutRecallType.php line 18

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\LayoutRecall;
  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\HiddenType;
  10. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  11. use Symfony\Component\Form\FormBuilderInterface;
  12. use Symfony\Component\Form\FormInterface;
  13. use Symfony\Component\OptionsResolver\OptionsResolver;
  14. use Symfony\Component\Validator\Constraints\Regex;
  15. class LayoutRecallType extends AbstractType implements LeadFormFillInterface
  16. {
  17.     // Для того чтобы можно было корректно выводить несколько форм на страницу и идентификаторы не пересекались
  18.     use UniqueIdFormTrait;
  19.     public function buildForm(FormBuilderInterface $builder, array $options)
  20.     {
  21.         $builder
  22.             ->add('link'HiddenType::class)
  23.             ->add('phone'PhoneType::class)
  24.             ->add('submit'SubmitType::class, [
  25.                 'label' => 'Отправить'
  26.             ])
  27.         ;
  28.     }
  29.     public function configureOptions(OptionsResolver $resolver)
  30.     {
  31.         $resolver->setDefaults([
  32.             'data_class' => LayoutRecall::class,
  33.             'unique_id' => true
  34.         ]);
  35.     }
  36.     public function fillLead(FormInterface $formLeadInterface $request): LeadInterface
  37.     {
  38.         /** @var LayoutRecall $entity */
  39.         $entity $form->getData();
  40.         $request->setLink($entity->getLink());
  41.         $request->setPhone($entity->getPhone());
  42.         $request->setEntity($entity);
  43.         return $request;
  44.     }
  45. }