Как получить данные пользователя в форме в Symfony 1.2?
Вопрос
Я использую Symfony 1.2 в стандартном классе формы Propel.
public function configure()
{
$this->setWidgets(array(
'graduate_job_title' => new sfWidgetFormInput( array(), array( 'maxlength' => 80, 'size' => 30, 'value' => '' ) )
));
//etc
}
Однако я хочу, чтобы значение этого поля было получено из информации о пользователе, к которой я обычно получаю доступ с помощью $this->getUser()->getAttribute( '...' )
.Однако в такой форме это, похоже, не работает.
Что мне следует использовать?
Решение
<забастовка> Это работает?
sfContext::getInstance()->getUser()->getAttribute('...');
Забастовка> <забастовка> удар>
// Edit : см. рекомендацию cirpo об использовании sfContext вместо этого.
Другие советы
Очень плохая идея полагаться на экземпляр sfContext.Лучше передать то, что вам нужно во время инициализации sfForm, в параметре массива параметров.
http://www.symfony-project.org/api/1_4/sfForm
__construct метод
например в вашем действии:
$form = new myForm(null,
array('attributeFoo' =>
$this->getUser()->getAttribute('attributeFoo'));
а затем получите значение внутри класса формы:
$this->getOption('attributeFoo');
цирпо
Если кому-то нужно то же самое в admin (backend), вот решение: http: // blog .nevalon.de / а / как потребительный меня-правом администрирование в-симфони админ-генератор формы обработка-20100729
В Symfony 1.4 объект $ sf_user