如何在symfony表单builForm函数中传递额外的变量


How can i pass extra variable in symfony form builForm Function

这是我的代码

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

有什么方法可以访问buildForm 中的$task变量

一个解决方案:

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);
}

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