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 :

Faire une redirection dans un render? [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 135
    Points : 153
    Points
    153
    Par défaut Faire une redirection dans un render?
    Bonjour,

    Dans un fichier twig je fais un render et dans se render je fais une redirection s'il y a une action précise qui est effectué.
    Et symfony m'affiche une erreur 302 donc je voulais savoir si c'était possible de faire une redirection dans un render??

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Bonjour.

    Tu fais comment ta redirection ?
    Avec un forward ca devrait fonctionner je pense.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 135
    Points : 153
    Points
    153
    Par défaut
    J'utilise ce code dans mon controleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $target = $this->generateUrl('login_check')."?_username=" . $user->getLogin() . "&_password=" . $pass . "&_target_path=/accueil";
    				return $this->redirect($target);
    En fait dans twig Layout je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {% render "DefaultBundle:User:inscription" with {'request': request} %}
    et quand je valide le formulaire je voudrais qu'il soit autolog avec la redirection mais apparemment il n'apprécie pas les redirect dans un render...

    Il me sort une erreur 302 après validation du formulaire d'inscription sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {% render "DefaultBundle:User:inscription" with {'request': request} %}
    ??

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Salut,

    J'ai exactement le même problème que toi, à savoir l'erreur 302 lorsque j'effectue un redirect dans le controlleur lors d'un render Twig.

    (Twig renvoie aussi une erreur d'ailleurs : 500 Internal Server Error - Twig_Error_Runtime)

    Si tu as trouvé la solution ou une alternative je suis preneur !

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Finalement j'ai pu résoudre mon problème en créant une nouvelle route adéquate et en la passant à l'action du formulaire.

    J'appel donc mon formulaire grâce au render de Twig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {% block content %}
    .....
    {% render "appPortailBundle:Categorie:new" with {'name': 'document'}%}
    .....
    {% endblock %}
    Dans le html.twig du formulaire appelé, on renvoit l'url dédié au form dans le champ 'action'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form action="{{ url( 'new_categorie', {'name' : name}) }}" method="post" {{ form_enctype(form) }}>
        {{ form_widget(form) }}
    </form>
    Dans routing.yml il faut bien sûr créer la route
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    index:
      pattern: /{name}
      defaults: { _controller: appPortailBundle:Default:index }
     
    new_categorie:
      pattern: /{name}/cat/new/
      defaults: { _controller: appPortailBundle:Categorie:new }
    Dans CategorieController.php , on a le fameux redirect qui povoquait l'erreur 302
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    class CategorieController extends Controller
    {
        public function newAction($name)
        {
            $form = $this->createForm(new CategorieType(), new Categorie());
     
            if ($request->getMethod() == 'POST') {
                if ($scatForm->isValid())
                {  
                        return $this->redirect($this->generateUrl('index', array('name' =>$name)));
                }
            }
     
            return $this->render('appPortailBundle:Categorie:new.html.twig',
                                array('name' => $name, 'form' => $form->createView()));
        }
    }
    Avec cette méthode j'ai pu résoudre problème cité au dessus.

    Il faut bien affecter les routes, et la magie de Symfony opère

    En espérant que ça aidera.

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 135
    Points : 153
    Points
    153
    Par défaut
    Ah super merci!!! j'ai pu résoudre mon problème!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2014, 20h01
  2. Faire une redirection dans une classe externe
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/06/2007, 14h17
  3. [MFC] Faire une pause dans un thread
    Par Kevgeii dans le forum MFC
    Réponses: 3
    Dernier message: 21/02/2005, 11h49
  4. Comment faire une insertion dans un fichier texte ?
    Par Isa31 dans le forum Langage
    Réponses: 10
    Dernier message: 28/12/2004, 09h06
  5. [XSL]faire une balise dans une balise??? (ComboBox)
    Par rastoix dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/05/2003, 08h34

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