【问题标题】:Symfony 2 Choice Field Default ValueSymfony 2 选择字段默认值
【发布时间】:2013-11-22 14:11:25
【问题描述】:

我的表单中有这个字段:

    ->add('taskOwner', null, array(
        'label' => $this-> translator ->trans( 'tasks.index.responsible' , array() , 'crm' )))

Symfony 将其识别为选择类型(它有另一个表的外键,有用户)。现在我想在登录的用户上设置默认值。我怎么能做到这一点?我尝试在我的控制器中创建我的类型的新实体,将 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;
    }

【问题讨论】:

    标签: forms symfony


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-11
      • 2014-04-11
      • 2019-07-26
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多