根据用户会话数据保存嵌入的表单值

时间:2012-09-21 14:44:41

标签: symfony1 symfony-1.4 symfony-forms

我有一个包含许多嵌入表单的表单,这些表单是选择列表。

我理想的是保存选择列表值。

我可以使用以下方式获取表单值:

$this->form->getValues()

var_dumping上面给出了类似的东西:

    array
      'fields' => 
        array
          'Field' => 
            array
              'field' => string 'field' (length=7)
              'column' => int 0
              'id' => null
          'Field 1' => 
            array
              'field' => string 'field_1' (length=7)
              'column' => int 1
              'id' => null
          'Field 2' => 
            array
              'field' => string 'field_2' (length=19)
              'column' => int 10
              'id' => null
      'id' => string '51' (length=2)

然后我在用户会话中设置表单值:

$this->getUser()->getAttribute('something', $this->form->getValues());

我想知道如何根据这些保存的值设置选择列表?

由于

编辑:

在我的actions.class.php我在$this->form-save()

之后添加了以下内容
$this->getUser()->setAttribute('user_fields', $this->form->getValues());

然后在我的表单类的configure()方法中,暗示使用:

    if ($savedValues = sfContext::getInstance()->getUser()->getAttribute('user_fields'))
    {
        $this->setDefaults($savedValues);
    }

它完美无缺!!

由于

1 个答案:

答案 0 :(得分:0)

在创建表单后(以及调用bind()之前)中的操作中,您可以执行以下操作:

$this->form = new YourForm();

if ($savedValues = $this->getUser()->getAttribute('something'))
{
  $this->form->setDefaults($savedValues);
}

// ...