2009-03-09 9 views
7

Ich benutze Symfony 1.2 in einer Standard-Propel-Klasse.Wie erhalten Benutzerdaten in Form in Symfony 1.2?

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

Ich mag jedoch der Wert dieses Feldes von den Benutzerinformationen kommen, die ich normalerweise $this->getUser()->getAttribute('...') Zugriff über würde. Dies scheint jedoch nicht in der Form zu funktionieren.

Was soll ich verwenden?

Antwort

6

funktioniert das?

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

// bearbeiten: Statt cirpo des recommandation über die Verwendung von sfContext See.

+0

Works, danke! –

+0

Vielen Dank, es funktioniert – Nordes

14

Es ist eine sehr schlechte Idee, auf der sfContext Instanz zu verlassen. Es ist besser, das, was Sie während der Initialisierung von sfForm benötigen, im Array-Parameter options weiterzugeben.

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

__contruct Methode

zum Beispiel in der Aktion:

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

und dann den Wert in der Form Klasse abrufen:

$ this-> getOption ('attributFoo');

cirpo

+1

Was ist, wenn Sie ein Plugin wie sfDoctrineGuard verwenden, das die Formulare automatisch generiert? Ich erstelle die Formulare nicht direkt in meinen eigenen Klassen. – codecowboy

+0

Es war, was ich gesucht habe. Vielen Dank! In meinem Fall funktioniert es mit Symfony 1.4 –

-1

In Symfony 1.4 Objekt $ sf_user

Verwandte Themen