Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/05/2011, 01h52   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 30
Points : 14
Points : 14
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
ToraTora est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 11h58   #2
Membre confirmé
 
Inscription : février 2009
Messages : 317
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 317
Points : 209
Points : 209
Bonjour,
Avant de faire ton forward dans la première action, essayes de faire un

Code :
$this->getRequest()->getParameterHolder()->set('joueur', $joueur) ;
Et ensuite dans l'action du forward tu peux récupérer ton objet :

Code :
$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.
insane1 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/05/2011, 17h39   #3
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
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 !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 18h44   #4
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 30
Points : 14
Points : 14
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.
ToraTora est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2011, 18h59   #5
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
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 :
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 !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2011, 23h15   #6
Membre habitué
 
Homme Ludovic Henry
Étudiant
Inscription : octobre 2009
Messages : 97
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Henry
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2009
Messages : 97
Points : 105
Points : 105
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?
Inarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h32.


 
 
 
 
Partenaires

Hébergement Web