src/Form/Slave/AssignTechnicianType.php line 11

Open in your IDE?
  1. <?php
  2. namespace App\Form\Slave;
  3. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\FormBuilderInterface;
  6. use Symfony\Component\OptionsResolver\OptionsResolver;
  7. use Doctrine\ORM\EntityRepository;
  8. class AssignTechnicianType extends AbstractType
  9. {
  10.     public function buildForm(FormBuilderInterface $builder, array $options)
  11.     {
  12.         $builder
  13.             ->add('technician'EntityType::class, array(
  14.                 'class' => 'App\Entity\Slave\User',
  15.                 'query_builder' => function (EntityRepository $er) { 
  16.                     return $er->createQueryBuilder('u')
  17.                     ->leftJoin('u.accountType''a')
  18.                     ->leftJoin('u.profile''p')
  19.                     ->leftJoin('a.category''atc')
  20.                     ->where('u.role != :roleAdmin')
  21.                     ->andWhere('atc.slug = :acTech1 OR atc.slug = :acTech2')
  22.                     ->andWhere('u.companyActive = 1')
  23.                     ->addOrderBy('p.surname''ASC')
  24.                     ->addOrderBy('p.name''ASC')
  25.                     ->setParameters(array('roleAdmin' => 'ROLE_ADMIN''acTech1' => 'tech-internal''acTech2' => 'tech-external'));
  26.                 },
  27.                 'choice_label' => function ($f) { return $f->displayNameAndCountTickets(); },
  28.                 'expanded' => false,
  29.                 'multiple' => false,
  30.                 'placeholder' => '',
  31.                 'mapped' => false
  32.             ));
  33.     }
  34.     public function configureOptions(OptionsResolver $resolver)
  35.     {
  36.         $resolver->setDefaults(array(
  37.             'data_class' => 'App\Form\Model\AssignTechnician',
  38.             'validation_groups' => array('assign_technician')
  39.         ));
  40.     }
  41. }