2009-03-09 3 views
7

J'utilise Symfony 1.2 dans une classe de formulaire Propel standard.Comment obtenir des données utilisateur dans un formulaire dans Symfony 1.2?

public function configure() 
{ 
    $this->setWidgets(array( 
'graduate_job_title' => new sfWidgetFormInput(array(), array('maxlength' => 80, 'size' => 30, 'value' => '')) 
    )); 
    //etc 
} 

Cependant, je veux la valeur de ce champ à venir de l'information de l'utilisateur, que je serais normalement accès à l'aide $this->getUser()->getAttribute('...'). Cependant, cela ne semble pas fonctionner sous la forme.

Que devrais-je utiliser?

Répondre

6

Est-ce que cela fonctionne?

sfContext::getInstance()->getUser()->getAttribute('...'); 

// Modifier: Voir la recommendation de cirpo sur l'utilisation de sfContext à la place.

+0

Works, je vous remercie! –

+0

Merci, ça marche – Nordes

14

C'est une très mauvaise idée de s'appuyer sur l'instance de sfContext. Il est préférable de transmettre ce dont vous avez besoin lors de l'initialisation de sfForm dans le paramètre array array.

http://www.symfony-project.org/api/1_4/sfForm

méthode __contruct

par exemple dans votre action:

$form = new myForm(null, 
        array('attributeFoo' => 
         $this->getUser()->getAttribute('attributeFoo')); 

puis récupérer la valeur dans la classe de formulaire:

$ this-> getOption ('attributeFoo');

cirpo

+1

Et si vous utilisez un plugin comme sfDoctrineGuard qui génère automatiquement les formulaires? Je ne crée pas directement les formes dans mes propres classes. – codecowboy

+0

C'était ce que je cherchais. Merci! Dans mon cas, il fonctionne avec Symfony 1.4 –

-1

Symfony 1.4, objet sf_user $