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

Symfony1 将默认属性设置为表单选择,symfony1,symfony-1.4,Symfony1,Symfony 1.4,我尝试了这个解决方案,但在Symfony 1.4中不起作用。 有什么变化吗?如何将所选属性添加到表单选择 这是我的表格课: // /lib/form/doctrine/CurrencyListForm.class.php class CurrencyListForm extends BaseCurrencyForm { public function configure() { $choices = ''; $choice = Doctrine::getTable(

我尝试了这个解决方案,但在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();

您正在渲染什么样的表单?如果它是一个对象形式(如
sfformdoctor
),则绑定“还原”默认值。(它设置模型的默认值)

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

大概是这样的:

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

///lib/form/doctor/CurrencyListForm.class.php类CurrencyListForm扩展BaseCurrencyForm{public function configure(){$choices='';$choice=doctor::getTable('currency')->createQuery('a')->execute();foreach($choice as$v)$choices[$v->getCurrencyCode()]=$v->getCurrencyCode()$this->setWidgets(数组('currency_code'=>newsfwidgetformselect(数组('choices'=>$choices)),);}您可以编辑您的问题并将其发布到那里。另外,请在实例化表单的地方添加代码。如果表单是在configure中添加的,比如$this->widgetSchema['foo'],并且没有显式的对象初始化,我如何传递选中/选中的项?$this->widgetSchema['foo']->setDefault(数组('value1','value2');不执行任何操作。它应该通过render()传递。在哪里调用?在哪里设置默认值?我所有的尝试都失败了。我不知道在哪里,它起作用了!你是怎么做到的?深入研究?我曾经有过类似的问题,然后深入研究教义形式是如何运作的。从那以后,我发现了默认值是如何设置的。。。