<?php
namespace PortalBundle\Form;
use CoreBundle\Entity\Dealer;
use CoreBundle\Form\CoreFormsType;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Contracts\Translation\TranslatorInterface;
class SupportType extends CoreFormsType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
/** @var TranslatorInterface $translator */
$translator = $options['translator'];
$builder
->add('support_type', ChoiceType::class, [
'choices' => array_flip(\PortalBundle\Model\Form\SupportType::getTypes($options['locale'])),
'label' => $translator->trans('base.support_type', [], 'portal_base'),
'mapped' => false,
])
->add('dealer', EntityType::class, [
'class' => Dealer::class,
'choice_label' => fn($dealer) => $dealer->getNameByLocale($translator->getLocale()),
'label' => $translator->trans('base.dc', [], 'portal_base'),
'required' => true,
'placeholder' => 'Не вибраний',
'query_builder' => function (EntityRepository $er) use ($options) {
$qb = $er->createQueryBuilder('d');
if ($options['filterPalmira']) {
return $qb->where('d.id != :toyotaPalmiraId')
->setParameter('toyotaPalmiraId', 7);
}
return $qb;
}
])
;
parent::buildForm($builder, $options);
}
public function configureOptions(OptionsResolver $resolver)
{
parent::configureOptions($resolver);
$resolver
->setDefault('captcha_type', 'support_form')
->setDefined('locale')
->setDefault('filterPalmira', false)
;
}
}