← Back
Editing: AdresseType.php
<?php namespace App\Form; use App\Entity\Adresse; use App\Entity\Agency; use App\Service\SolutionService; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Security\Core\Security; use Symfony\Component\Security\Core\User\UserInterface; class AdresseType extends AbstractType { private ?UserInterface $user; private SolutionService $splutionService; public function __construct(Security $security, SolutionService $solutionService) { $this->user = $security->getUser(); $this->splutionService = $solutionService; } /** * @return void */ public function buildForm(FormBuilderInterface $builder, array $options) { $authChecker = $options['authorization_checker']; $solution = $options['solution']; $builder ->add( 'voie', TextType::class, [ 'required' => true, 'label' => 'Rue', ] ) ->add( 'numero', TextType::class, [ 'required' => true, 'attr' => [ 'class' => 'alphanumeric-form', ], ] ) ->add( 'repetition', ChoiceType::class, [ 'choices' => [ '' => '', 'bis' => 'bis', 'ter' => 'ter', 'quater' => 'quater', ], 'required' => false, ] ) ->add( 'codePostal', TextType::class, [ 'required' => true, ] ) ->add( 'ville', TextType::class, [ 'required' => true, ] ) ->add('residence') ->add('batiment', TextType::class, ['label' => 'Code Programme']); if ('lift-manager' === $solution->getSlug()) { $builder->add( 'numeroAscenseur', TextType::class, [ 'label' => 'n° Ascenseur', 'required' => true, ] ); } if ($authChecker->isGranted('ROLE_ADMIN')) { $builder->add( 'agency', EntityType::class, [ 'class' => Agency::class, 'choice_label' => 'nom', 'required' => false, ] ); } } /** * @return void */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults( [ 'data_class' => Adresse::class, 'solution' => null, 'authorization_checker' => null, 'agency' => null, ] ); } }
Save File
Cancel