IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Inclusion de contrôleur contenant un formulaire


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 24
    Points : 24
    Points
    24
    Par défaut Inclusion de contrôleur contenant un formulaire
    Bonjour,

    j'avais créé il y a quelques temps un post pour créer un système d'onglet avec les templates sur Symfony, ce qui est aujourd'hui résolu, mais je suis face à un nouveau problème.
    Comme je l'avais spécifié dans mon ancien post : je suis encore débutant sur Symfony

    J'ai créé une page (layout.html.twig) contenant un menu, ce menu permet d'établir la connexion d'un utilisateur à mon appli, ce qui marche correctement.
    Le problème, c'est que je ne veux pas avoir à réécrire la méthode de connexion dans tous mes contrôleurs, sinon je vais vite les surcharger et me perdre dedans.

    Pour ça je sais que l'on peut inclure des contrôleurs directement, le souci, c'est que quand je le fais Symfony m'envoie une erreur comme quoi il n'arrive pas à trouver mon formulaire.
    Je pense que si l'on peut inclure les contrôleurs alors on peut aussi sûrement inclure les contrôleurs qui contiennent des formulaires,
    avec ça, j'en déduis que je m'y prends très mal.

    Voici mon code actuellement (page.html.twig) qui inclut mon menu et le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {% extends "AppBundle::layout.html.twig" %}
     
    {% block controller %}
        {{ render(controller('AppBundle:Default:index')) }}
    {% endblock %}
    Voilà aussi la réponse de ma méthode dans le contrôleur DefaultController :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    return new Response(
                    $this->renderView('AppBundle:Default:index.html.twig', array('form' => $form->createView(), 'erreur' => 0)),200
                );
    (index.html.twig est un template qui hérite aussi de layout)

    Ma question est la suivante : Qu'est ce que j'ai fait de mal ?

    Merci !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return $this->render('AppBundle:Default:index.html.twig', array('form' => $form->createView() , 'erreur' => 0);
    si ça marche plus, partage nous l'exception

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Merci pour la réponse

    alors j'ai essayé, et ça n'a rien changé, voici l'exception que j'aie :

    Variable "form" does not exist in AppBundle::layout.html.twig at line 91
    (erreur 500 donc)
    et la ligne 91 est la ligne qui contient la création de la vue du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class="row">
                                {{ form_start(form) }}
    </div>
    Petite question cependant : Qu'est ce qui change entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    return new Response(
        $this->renderView('AppBundle:Default:index.html.twig', array('form' => $form->createView(), 'erreur' => 0)),200
    );
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $this->render('AppBundle:Default:index.html.twig', array('form' => $form->createView() , 'erreur' => 0);
    ?

    C'est peut être très scolaire, mais pour une appli REST on est censé renvoyer nous même les codes HTTP, je ne sais pas si cela se fait tout seul avec la deuxième méthode en revanche.

    Merci encore

Discussions similaires

  1. servlet qui genere une page contenant un formulaire
    Par Arctodus dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 30/03/2009, 09h51
  2. Réponses: 3
    Dernier message: 19/09/2007, 17h11
  3. Réponses: 4
    Dernier message: 09/08/2007, 10h26
  4. Réponses: 0
    Dernier message: 01/08/2007, 17h16
  5. [WACT] Un contrôleur pour plusieurs formulaires
    Par lvldia dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 11/07/2007, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo