src/Leads/Form/TradeInLayoutRecallType.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\TradeInLayoutRecall;
  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 TradeInLayoutRecallType 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('name'null, [
  24.                 'attr' => [
  25.                     'placeholder' => 'Ваше имя',
  26.                 ]
  27.             ])
  28.             ->add('phone'PhoneType::class)
  29.             ->add('submit'SubmitType::class, [
  30.                 'label' => 'Отправить'
  31.             ])
  32.         ;
  33.     }
  34.     public function configureOptions(OptionsResolver $resolver)
  35.     {
  36.         $resolver->setDefaults([
  37.             'data_class' => TradeInLayoutRecall::class,
  38.             'unique_id' => true
  39.         ]);
  40.     }
  41.     public function fillLead(FormInterface $formLeadInterface $request): LeadInterface
  42.     {
  43.         /** @var TradeInLayoutRecall $entity */
  44.         $entity $form->getData();
  45.         $request->setLink($entity->getLink());
  46.         $request->setName($entity->getName());
  47.         $request->setPhone($entity->getPhone());
  48.         $request->setEntity($entity);
  49.         return $request;
  50.     }
  51. }