在symfony中传递变量形式的builForm函数

时间:2013-04-03 09:35:57

标签: php symfony

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

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

2 个答案:

答案 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; 
  [...] 
}