← Back
Editing: UserType.php
<?php namespace App\Form; use App\Entity\Agency; use App\Entity\User; use Doctrine\ORM\EntityRepository; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\CollectionType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; class UserType extends AbstractType { /** * @return void */ public function buildForm(FormBuilderInterface $builder, array $options) { $data = $builder->getData(); $builder ->add('email') ->add( 'enabled', CheckboxType::class, [ 'label' => 'Activer cet utilisateur ?', 'required' => false, ] ) ->add( 'roles', ChoiceType::class, [ 'choices' => [ 'Manager' => 'ROLE_MANAGER', 'Agent' => 'ROLE_AGENT', 'Supervisor' => 'ROLE_SUPERVISOR', ], 'multiple' => true, 'required' => true, ] ) ->add( 'agentFrequencies', CollectionType::class, ['entry_type' => AgentFrequencyType::class, 'label' => false] ) ->add( 'agency', EntityType::class, [ 'class' => Agency::class, 'choice_label' => 'nom', ] ) ->add('nom') ->add('prenom') ->add('solutions'); if ($data->getAgency()) { $builder ->add( 'manager', EntityType::class, [ 'class' => User::class, 'required' => false, 'query_builder' => function (EntityRepository $er) use ($builder) { $data = $builder->getData(); return $er->createQueryBuilder('u') ->where('u.agency = :agency') ->andWhere('u.roles LIKE :managerRole') ->setParameter('agency', $data->getAgency()) ->setParameter('managerRole', '%ROLE_MANAGER%'); }, ] ); } } /** * @return void */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults( [ 'data_class' => User::class, 'user_manager' => null, ] ); } }
Save File
Cancel