我在我的控制器中试过这段代码
$form = $this->createForm(new CentrexEdit2Type($ids), $centrex);
我现在想要将ids
表单添加到表单生成器中:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$ids = $options['ids'];
.......
我失败了 有什么想法吗?
我在这里加入代码:
if ($step==2){
$form = $this->createForm(new CentrexEdit1Type(), $centrex);
$ids=$form->get('bases')->getData();
}
foreach($ids as $id){echo($id->getId());}
if ($step==3){
$form = $this->createForm(new CentrexEdit2Type(array('ids'=>$ids)), $centrex);
}
我需要$ids
$step==3
,这就是问题所在。
答案 0 :(得分:1)
我所做的就是以这种方式创建表单:
$ form = $ this-> createForm(new TheForm($ anArray),$ client);
其中$anArray
是一个数组。
然后,我在表格中做了类似的事情:
public $anArray;
public function __construct($anArray)
{
$this->anArray = $anArray;
}
之后,在表单类中,我使用$this->anArray
答案 1 :(得分:0)
尝试
$form = $this->createForm(new CentrexEdit2Type(array('ids'=>$ids)), $centrex);
控制器中的
并使用
修改您的表单protected $ids;
public function __construct(array $parameters=Null)
{
if($parameters)
{
if(array_key_exists('ids',$parameters)) $this->ids = $parameters['ids'];
}
}
最后一步
public function buildForm(FormBuilderInterface $builder, array $options)
{
$ids = $this->ids;
[...]
}