2012-08-06 63 views
1

这是我的代码如何传递额外的变量symfony的形式builForm功能

public function buildForm(FormBuilder $builder, array $options , $task) 
    { 
     $builder 
      ->add('genTasks','text',array('label'=>$task->getName())) 

     ; 
    } 

有什么办法,我可以访问内部buildForm

+0

也许我错过了一些东西,但不是$任务被传递到函数buildForm(你的第三个参数)?所以,你有权访问它,对吧? – ews2001 2012-08-06 05:06:24

+0

我试过了,它给出了错误。它表示builform应该与symfony表单类中所写的匹配。所以我不能通过该功能 – user825904 2012-08-06 05:36:38

回答

3

一个解决方案的$任务变量:

public function buildForm(FormBuilder $builder, array $options) 
{ 
    $task = $options['task']; 

    // If you want... 
    if(is_null($task)) throw new \LogicException('Task option is required.'); 

    $builder 
     ->add('genTasks', 'text', array('label' => $task->getName())) 
    ; 
} 

public function getDefaultOptions(array $options) 
{ 
    return $options + array('task' => null); 
} 

并在创建表单时传递任务对象作为选项。

+0

感谢兄弟我会尝试 – user825904 2012-08-06 07:33:14

+0

感谢兄弟它的工作 – user825904 2012-08-07 01:02:49