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 16/03/2011, 13h20   #1
Invité de passage
 
Inscription : juin 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 25
Points : 3
Points : 3
Par défaut utilisation variables sessions dans les class form

Bonjour,
est-il possible d'utiliser des variables de sessions dans les Class form.C'est-a-dire si jai une variable
Citation:
$this->getUser()->setAttribute("membre", $this->membre);
!!!
Comment pourrai-je utiliser cette variable dans /lib/form/doctrine/MaformForm.Class.php afin d'effectuer des requêtes avec?
Merci d'avance.
cordialement!
xamxamle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 13h39   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
De la même façon qu'avec n'importe quelle variable.

Cela te parle-t-il plus si on fait ceci :
Code :
1
2
$variable = $this->getUser()->setAttribute("membre", $this->membre); 
echo $variable;
Il faut pas être apeuré par la syntaxe objet.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 14h05   #3
Invité de passage
 
Inscription : juin 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 25
Points : 3
Points : 3
Citation:
Envoyé par transgohan Voir le message
De la même façon qu'avec n'importe quelle variable.

Cela te parle-t-il plus si on fait ceci :
Code :
1
2
$variable = $this->getUser()->setAttribute("membre", $this->membre); 
echo $variable;
Il faut pas être apeuré par la syntaxe objet.
bonjour,
Tu penses vraiment?
--pour appeler une variable de session dans les controllers on met:
Code :
$this->getUser()->getAttribute("membre")
....
--pour appeler une variable de session dans les templates on met:
Code :
$sf_user->getAttribute("membre")
....
Ma question est si je suis dans lib/form/doctrine/MaformForm.class.php comment je pourrais appeler une variable de session? je pense etre claire.
J'ai utilise
Code :
$this->getUser()->getAttribute("membre")
.... et j'obtiens cette erreur:
Citation:
Call to undefined method InformationsForm::getUser.
merci davance et cordialement
xamxamle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 14h19   #4
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Mouarf il y a des jours où je ferrai mieux de pas toucher un clavier...

Bon tentons d'être utile et constructif après ce fail, que nous attribuerons à la période de digestion.


J'ai pu lire sur StackOverflow que cela ne semble pas possible d'accéder à une telle information.
Cependant tu peux leurer le système de la sorte lors de l'instanciation de ton form :
Code :
1
2
3
$form = new myForm(null, 
                   array('attributeFoo' => 
                         $this->getUser()->getAttribute('attributeFoo'));
Et après dans ta classe form :
Code :
$this->getOption('attributeFoo');
Source : http://stackoverflow.com/questions/6...ny-1-2#2920785
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 16h18   #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
A noter que la source dit que c'est une très mauvaise idée de... pas que c'est impossible.

Il faut récupérer un pointeur vers l’instance courante.

Code :
$user = sfContext::getInstance()->getUser();
Ensuite tu peux traiter ton objet user à ta guise. C'est le même objet (pas un clône) que celui retourné dans le contrôleur.

Il n'est pas effectivement pas recommandé d'accéder directement à un objet depuis un form ce qui limite la portabilité du code, mais parfois c'est plus souple et plus simple.
__________________
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 16/03/2011, 16h50   #6
Invité de passage
 
Inscription : juin 2009
Messages : 25
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 25
Points : 3
Points : 3
Bonjour,
Merci de vos réponses j'ai fait autrement en ajoutant un champ qui contiendrait ma variable de session et dont je cacherais sur le template.
et tout marche.
merci infiniment
xamxamle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web