0

我已经在我的控制器中尝试过这段代码

$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,这就是问题所在。

4

2 回答 2

1

我所做的是以这种方式创建表单:

$form = $this->createForm(new TheForm($anArray), $client);

$anArray数组在哪里。

然后,以我的形式执行以下操作:

public $anArray;

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

在此之后,在表单类中我访问数组$this->anArray

于 2013-04-03T09:41:51.037 回答
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; 
  [...] 
}
于 2013-04-03T09:40:27.807 回答