将默认属性设置为表单选择

时间:2011-09-21 10:27:42

标签: symfony1 symfony-1.4

我尝试了this这个解决方案,但它不能在Symfony 1.4中运行。 有什么变化?如何将选定的属性添加到表单选择?

这是我的表单类:

// /lib/form/doctrine/CurrencyListForm.class.php

class CurrencyListForm extends BaseCurrencyForm
{
  public function configure()
  {

    $choices = '';

    $choice = Doctrine::getTable('currency')
        ->createQuery('a')
        ->execute();

    foreach($choice as $v) 
        $choices[$v->getCurrencyCode()] = $v->getCurrencyCode(); 

    $this->setWidgets(array( 
        'currency_code' => new sfWidgetFormSelect(array('choices' => $choices)), 
    ));

  }

}

这就是我实例化的方式:

$this->form = new CurrencyListForm();

1 个答案:

答案 0 :(得分:1)

你呈现什么样的形式?如果它是一个对象形式(如sfFormDoctrine),则绑定“恢复”默认值。 (它设置模型的默认值。)

我发现最简单的绑定方法是创建一个虚拟对象并在该对象上设置属性。然后将此对象传递给表单的构造函数。

这样的事情:

$defaultCurrency = new Currency();
$defaultCurrency->currency_code = 'EUR';
$this->form = new CurrencyListForm($defaultCurrency);