Forms Symfony 2选择字段默认值

Forms Symfony 2选择字段默认值,forms,symfony,Forms,Symfony,我的表格中有此字段: ->add('taskOwner', null, array( 'label' => $this-> translator ->trans( 'tasks.index.responsible' , array() , 'crm' ))) Symfony将其识别为Choice类型(它具有另一个表的外键,用户可以使用)。现在我想设置登录用户的默认值。我怎么能做到?我尝试在我的控制器中创建我类型的新实体,将taskOwner设置到

我的表格中有此字段:

    ->add('taskOwner', null, array(
        'label' => $this-> translator ->trans( 'tasks.index.responsible' , array() , 'crm' )))
Symfony将其识别为Choice类型(它具有另一个表的外键,用户可以使用)。现在我想设置登录用户的默认值。我怎么能做到?我尝试在我的控制器中创建我类型的新实体,将taskOwner设置到其中,然后将SetData放入表单中,如下所示:

    $entity = new Tasks();
    $tasksForm = $this->createForm(new TasksType($translator), $entity);

    $userId = $this->get('security.context')->getToken()->getUser()->getId();
    $user = $this->getDoctrine()->getRepository('CloudAdmBundle:AdmUser')->find($userId);
    $task = new Tasks();
    $task->setTaskOwner($user);
    $tasksForm->setData($task);
要清除所有内容,请定义setter:

   public function setTaskOwner(\Cloud\AdmBundle\Entity\AdmUser $taskOwner = null)
    {
        $this->taskOwner = $taskOwner;

        return $this;
    }

在创建表单之前执行以下操作:

$userId = $this->get('security.context')->getToken()->getUser()->getId();
$user = $this->getDoctrine()->getRepository('CloudAdmBundle:AdmUser')->find($userId);
$entity = new Tasks();
$entity->setTaskOwner($user);
$tasksForm = $this->createForm(new TasksType($translator), $entity);