add('submit', SubmitType::class, [ 'label' => 'Valider', 'attr' => ['class' => 'btn btn-success'], ] ); $access = $options['access']; $userid = $options['userid']; $builder->add('niveau01', EntityType::class, [ 'class' => "App\Entity\Niveau01", 'label' => $options['appNiveau01label'], 'placeholder' => '== Choisir '.$options['appNiveau01label'].' ==', 'choice_label' => 'label', 'disabled' => ('submit' != $options['mode']), 'query_builder' => function (EntityRepository $er) use ($access, $userid) { switch ($access) { case 'admin': return $er->createQueryBuilder('niveau01')->orderBy('niveau01.label', 'ASC'); break; case 'modo': $result = $er->createQueryBuilder('table')->innerJoin('App:UserModo', 'usermodo', Join::WITH, 'table.id = usermodo.niveau01')->orderBy('table.label', 'ASC'); $result->andWhere('usermodo.user = :user'); $result->setParameter('user', $userid); return $result; break; } }, ] ); $builder->add('label', TextType::class, [ 'label' => 'Label', ] ); $builder->add('code', TextType::class, [ 'label' => 'Code', 'required' => false, ] ); $builder->add('email', EmailType::class, [ 'label' => 'Mail', 'required' => false, ] ); $builder->add('postaladress', TextareaType::class, [ 'label' => 'Adresse', 'required' => false, 'attr' => ['style' => 'height:90px'], ] ); $builder->add('telephonenumber', TextType::class, [ 'label' => 'Téléphone', 'required' => false, ] ); } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => 'App\Entity\Niveau02', 'mode' => 'string', 'access' => 'string', 'userid' => 'string', 'appMasteridentity' => 'string', 'appNiveau01label' => 'string', 'appNiveau02label' => 'string', ]); } }