Bonjour à tous,

Je tente de faire passer l'id d'une entité "page" active dans un lien vers un template et le controller sectionsPagesController.php.
Le but étant de pouvoir créer une section de page depuis une page active et de renseigner automatiquement l'id de la page active dans le formulaire permettant la création des nouvelles sections...

J'ai beau renseigner une variable "pageId" dans ma route / controller, il n'arrive pas à la trouver au moment du render !

Merci d'avance pour votre précieuse aide

SectionsPagesController :

#[Route('creer/{pageId}', 'creer')]
    public function creer(PagesRepository $pagesRepo, Request $request, EntityManagerInterface $em, $pageId): Response
    {
        $page = $pagesRepo->find($pageId);
        dd($page);

        $section = new SectionsPages();
        $titre = "Créer une section de page";
        $form = $this->createForm(SectionsPagesType::class, $section, ['method' => 'POST', 'pageId' => $pageId]);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $section->setPage($page);
            $em->persist($section);
            $em->flush();

            $this->addFlash('message', "La nouvelle section de page a été créée avec succès.");
            return $this->redirectToRoute('pages_sections_liste');
        }

        return $this->render('admin/sections-pages-form.html.twig', ['form' => $form, 'titre' => $titre,'page'=>$page]);
    }

pages-form.html.twig (contenant le bouton pour créer une nouvelle section de page)

{% extends 'base.html.twig' %}

{% block title %}
    <h1>{{titre}}</h1>
{% endblock %}
{% block body %}
    {{dump(form)}}
    <h1>{{titre}}</h1>
    {{ form_start(form) }}
    {{form_row(form.titre)}}
    {{form_row(form.sous_titre)}}
    {{form_row(form.etat)}}
    {{form_row(form.slug)}}
    {{form_row(form.ordre)}}
    {{form_row(form.created_at)}}
    {{form_row(form.updated_at)}}
    <button type="submit" class="btn btn-enregistrer">Enregistrer</button>
    {{ form_end(form) }}
    <div class="section-boutons-horizontale">
        <button type="button" class="btn btn-creer-section">
            <a href="{{path('pages_sections_creer',{'pageId':pageId})}}">Créer section</a>
        </button>
        <button type="button" class="btn btn-creer-galerie">
            <a href="#"></a>Créer galerie</button>
    </div>
{% endblock %}

1 réponse


Tu ne fournis jamais la variable pageId à ta vue.
Est-ce que page.id ne sertait pas suffisant ?