2012-08-06 72 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