src/PortalBundle/Form/SupportType.php line 29

Open in your IDE?
  1. <?php
  2. namespace PortalBundle\Form;
  3. use CoreBundle\Entity\Dealer;
  4. use CoreBundle\Form\CoreFormsType;
  5. use Doctrine\ORM\EntityRepository;
  6. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  7. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  8. use Symfony\Component\Form\FormBuilderInterface;
  9. use Symfony\Component\OptionsResolver\OptionsResolver;
  10. use Symfony\Contracts\Translation\TranslatorInterface;
  11. class SupportType extends CoreFormsType
  12. {
  13.     public function buildForm(FormBuilderInterface $builder, array $options)
  14.     {
  15.         /** @var TranslatorInterface $translator */
  16.         $translator $options['translator'];
  17.         $builder
  18.             ->add('support_type'ChoiceType::class, [
  19.                 'choices' => array_flip(\PortalBundle\Model\Form\SupportType::getTypes($options['locale'])),
  20.                 'label' => $translator->trans('base.support_type', [], 'portal_base'),
  21.                 'mapped' => false,
  22.             ])
  23.             ->add('dealer'EntityType::class, [
  24.                 'class' => Dealer::class,
  25.                 'choice_label' => fn($dealer) => $dealer->getNameByLocale($translator->getLocale()),
  26.                 'label' => $translator->trans('base.dc', [], 'portal_base'),
  27.                 'required'   => true,
  28.                 'placeholder' => 'Не вибраний',
  29.                 'query_builder' => function (EntityRepository $er) use ($options) {
  30.                     $qb $er->createQueryBuilder('d');
  31.                     if ($options['filterPalmira']) {
  32.                         return $qb->where('d.id != :toyotaPalmiraId')
  33.                             ->setParameter('toyotaPalmiraId'7);
  34.                     }
  35.                     return $qb;
  36.                 }
  37.             ])
  38.         ;
  39.         parent::buildForm($builder$options);
  40.     }
  41.     public function configureOptions(OptionsResolver $resolver)
  42.     {
  43.         parent::configureOptions($resolver);
  44.         $resolver
  45.             ->setDefault('captcha_type''support_form')
  46.             ->setDefined('locale')
  47.             ->setDefault('filterPalmira'false)
  48.         ;
  49.     }
  50. }