как установить значение для скрытой переменной в symfony1.4 - PullRequest
1 голос
/ 08 марта 2012

Мне нужно сохранить login_id в скрытой переменной для хранения в базе данных. Как я могу сохранить это? после входа я сохраняю login_id вот так $this->getUser()->setAttribute('client_id',$client_id); и я установил виджет в моем базовом классе

 $this->setWidgets(array(
     'id'      => new sfWidgetFormInputHidden(),
     'client_id'              => new sfWidgetFormInputHidden(array(),array('value'=>'3')),));

как я могу получить доступ к login_id клиента в моем базовом классе или есть какой-либо другой способ установить login_id в скрытую переменную? Пожалуйста, помогите мне. заранее спасибо

Ответы [ 4 ]

3 голосов
/ 08 марта 2012

в вашем действии при создании формы:

$form = new MyForm();
$form->setDefault('client_id', $this->getUser()->getAttribute('client_id'));
2 голосов
/ 11 марта 2012

Вы можете сделать это, как сказал Лулиандро, или вы можете сделать это в форме

    $this->setWidgets(array(
         'id'      => new sfWidgetFormInputHidden(),
         'client_id'              => new sfWidgetFormInputHidden()
     )); 
    $this->getWidget('client_id')->setDefault(3);
0 голосов
/ 27 октября 2014

Лими Джерин У меня тоже проблема.Это мое решение: вы можете попробовать:

  $this->setWidgets(array(
 'id'      => new sfWidgetFormInputHidden(),
 'client_id'              => new sfWidgetFormInputHidden());

sfWidgetFormInputHidden, не поддерживающее значение по умолчанию.Но мы можем использовать установленное значение ValidatorChoice:

$this->setValidators(array(
        'client_id' => new ValidatorChoice([
            'choices' => [3],
            'empty_value' => 3,
            'required' => FALSE,
    ])));

У меня есть пример моего проекта:

    $this->widgetSchema['portal_id'] = new sfWidgetFormInputHidden([
        'default' => [sfContext::getInstance()->getUser()->getAttribute('portal')],
        'is_hidden' => true,
    ]);
    $this->validatorSchema['portal_id'] = new sfValidatorChoice([
        'choices' => [sfContext::getInstance()->getUser()->getAttribute('portal')],
        'empty_value' => sfContext::getInstance()->getUser()->getAttribute('portal'),
        'required' => FALSE,
    ]);

Спасибо за чтение.

0 голосов
/ 08 марта 2012

В вашей библиотеке / форме вы можете сделать это:

  $this->setWidgets(array(
        'example' => new sfWidgetFormInputHidden(array(), array()),
    ));

Хорошего дня!

Гуннар

...