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 :

Récupérer un objet après un forward


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 30
    Points : 27
    Points
    27
    Par défaut Récupérer un objet après un forward
    Bonjour,

    je créer un objet $joueur au début de mon action Index.
    Je redirige ensuite via un forward sur une autre action dans laquelle j'ai besoin de cet objet.
    Je ne trouve pas le moyen de le lui passer.

    j'ai essayé de le garder dans la session utilisateur, mais j'ai besoin de le recharger à chaque page, et de plus il n'est pas recommandé de garder des objets en session (d'après la doc).

    Pour résumer, j'ai un objet que je créer au début de la requête, puis je dois l'utiliser dans plusieurs actions différentes.

    Comment faire ?

    Merci pour votre aide !

    ToraTora

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 321
    Points : 265
    Points
    265
    Par défaut
    Bonjour,
    Avant de faire ton forward dans la première action, essayes de faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->getRequest()->getParameterHolder()->set('joueur', $joueur) ;
    Et ensuite dans l'action du forward tu peux récupérer ton objet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->variable = $this->getRequestParameter('joueur');
    Si cela ne fonctionne pas avec un objet complet, indique uniquement l'Id du joueur et dans l'action du forward refais une requête.

  3. #3
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Tout dépend de ce que représente ton objet $joueur et de la durée de vie que tu veux lui donner.

    Il faudrait plus d'informations.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Mon objet joueur contient des informations comme sa position, son nb de points de vie, etc...

    J'ai besoin de le recréer entre chaque requêtes, et je l'utilise dans plusieurs actions.

    Je vais tester la solution de insane1 qui devrait convenir.

  5. #5
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Si tu l'utilises dans plusieurs actions chainées par des forward tu as peut être intérêt à procéder différemment.

    Tu peux créer un code dans mUser qui ressemblerait à ceci.
    Code php : 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
    # myUser.class.php Récupération de l'objet joueur
    ...
     
      protected $joueur = null;
     
    ...
     
      public function getJoueur()
      {
        if (!$this->joueur && $id = $this->getAttribute('joueur_id', null))
        {
          $this->joueur = // La il faut initialiser l'objet
     
         // et éventuellement vérifier que l'initialisation soit correcte.
        }
        return $this->joueur;
      }
    En gros, tu stocks l'objet dans ton objet myUser, mais pas a travers les sessions. Au premier appel, l'objet n'est pas initialisé et il lance l'initialisation. Aux suivants, il se contente de te renvoyer le pointeur, gains, une seul requête.

    Il faudra initialiser quelque par les informations du joueur.

    C'est juste une idée, le code n'est pas fonctionnel ainsi.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 100
    Points : 123
    Points
    123
    Par défaut
    Par contre petit conseil, si tu doit récupérer ton joueur à toutes les requêtes, et ce dans n'importe quelle app, pourquoi ne pas regarder du coté des filters?

Discussions similaires

  1. Récupérer objet après authentification
    Par ahmedpa dans le forum Spring
    Réponses: 2
    Dernier message: 21/03/2014, 20h00
  2. Récupérer un objet d'une liste déroulante
    Par Hell dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/01/2005, 14h59
  3. [servlet][bean]comment récupérer l'objet request
    Par otminou dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 27/09/2004, 14h40
  4. Réponses: 4
    Dernier message: 15/09/2004, 16h52
  5. [ JSP ][ Débutant ] Passage d'objet par un forward
    Par captainpouet dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 08/04/2004, 10h33

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