如何在symfony1.4中为隐藏变量设置值

时间:2012-03-08 06:25:25

标签: symfony1 symfony-1.4

我需要将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 个答案:

答案 0 :(得分:3)

创建表单时

在您的操作中:

$form = new MyForm();
$form->setDefault('client_id', $this->getUser()->getAttribute('client_id'));

答案 1 :(得分:2)

你可以这样做,因为luliandro说或者你可以在表格中做到这一点

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

答案 2 :(得分:0)

在您的lib /表单中,您可以这样做:

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

度过美好的一天!

贡纳尔

答案 3 :(得分:0)

Limi Jerin 我也有问题。 这是我的解决方案: 你可以尝试:

  $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,
    ]);

感谢阅读。