Quantcast
Channel: Grafikart | Derniers Sujets du forum
Viewing all articles
Browse latest Browse all 1542

Afficher un formulaire sans passer ID dans l'URL

$
0
0

Bonjour,

Voila je souhaite faire quelque chose pour améliorer la sécurité de mon code.
Je réalise un petit outil pour que les écoles de mon village puissent gérer les cours en ligne et garder un contact avec leurs élèves.
Pour ce faire, j'ai :

une entity Users qui contient :

  • id
  • firstname
  • ...

Une entity Schools, qui contient :

  • id
  • name
  • ...
  • director (relation OneToOne avec l'entité Users)

Ce que je veux

Je souhaite que le directeur connecté puisse visualiser / modifier le profil de son école (il s'agit d'un formulaire)
exemple de lien : director/school-profil

Mais que celui-ci ne puisse valider que le profil de son école et pas d'une autre. C'est pourquoi je veux éviter de faire passer l'ID de l'école concernée dans l'URL (ex. : director/school-profil/3)

Ce que je fais

Dans mon Controller :

/**
     * @Route("/school-profile", name="schoolprofile")
     */
    public function schoolprofile(Request $request, SchoolsRepository $schoolRepo, EntityManagerInterface $manager){

        // On récupère l'ID de l'user connecté
        $recupuser = $this->getUser();

        // On cherche à filtrer l'école concernée
        $schoolRepo->findOneBy([
            'director' => $recupuser
        ]); 

        // On traite le formulaire
        $form = $this->createForm(SchoolType::class);
        $form->handleRequest($request);

        if($form->isSubmitted() && $form->isValid()) {
            $manager->persist($form);
            $manager->flush();
        }

        return $this->render('director/school_profile.html.twig', [
        'schoolForm' => $form->createView()
        ]);
    }

Ce que j'obtiens

Aucune page d'erreur. J'ai bien la page contenant le formulaire, mais celui-ci est vide.

Merci par avance pour votre aide,

Grub


Viewing all articles
Browse latest Browse all 1542

Trending Articles