2009-03-09 8 views
7

Estoy usando Symfony 1.2 en una clase de formulario Propel estándar.¿Cómo obtener los datos del usuario en forma en Symfony 1.2?

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

Sin embargo, quiero que el valor de este campo que proviene de la información del usuario, que normalmente tendría acceso que utilicen $this->getUser()->getAttribute('...'). Sin embargo, esto no parece funcionar en la forma.

¿Qué debo estar usando?

Respuesta

6

¿Eso funciona?

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

// Editar: Ver recommandation de cirpo en el uso de sfContext lugar.

+0

Works, gracias! –

+0

Gracias, funciona – Nordes

14

Es una muy mala idea confiar en la instancia de sfContext. Es mejor pasar lo que necesita durante la inicialización de sfForm en el parámetro array de opciones.

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

método __contruct

por ejemplo, en su acción:

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

y luego recuperar el valor dentro de la clase de formulario:

$ this-> getOption ('attributeFoo');

cirpo

+1

¿Qué sucede si está utilizando un complemento como sfDoctrineGuard que genera automáticamente los formularios? No estoy creando directamente los formularios en mis propias clases. – codecowboy

+0

Era lo que estaba buscando. ¡Gracias! En mi caso, funciona con Symfony 1.4 –

-1

En Symfony 1.4, objeto $ sf_user

Cuestiones relacionadas