我如何在formbuilder中传递一个变量?

时间:2012-01-30 14:38:15

标签: php symfony

我已找到更多关于此的答案,但返回错误“选项”prova“不存在”

我做到了 在defaultcontroller.php

$form = $this->createForm(new ProvinciaType(), $provincia, array('prova' => 'ciao'));
ProvinciaType.php

中的

public function buildForm(FormBuilder $builder, array $options)
    {
       $builder->add('name', 'entity', array(
    'class' => 'AcmeIndexBundle:Provincia',
    'query_builder' => function(EntityRepository $er) {
        return $er->createQueryBuilder('u')
            ->orderBy('u.name', 'ASC');
    },'empty_value' => $options['prova'] 
));

    }

但不行吗?

1 个答案:

答案 0 :(得分:5)

只需将其传递给构造函数:

$this->createForm(new ProvinciaType($options), $provincia)

并以以下形式使用:

public function __construct($options) {
    $this->options = $options;
}

然后在buildForm中使用它:

$options = $this->options;
....
function(EntityRepository $er) use ($options)
    ...
},'empty_value' => $options['prova'] 
....