如何在symfony2 formbuilder中获取表单字段的默认值


How to get default value for form field in symfony2 formbuilder

所以我已经读到,我可以通过执行以下来设置symfony2 formbuilder中字段的默认值

->add('myfield', 'text', array(
  'label' => 'Field',
  'data' => 'Default value'
))

现在我想操作默认情况下在这里的值,为了知道要设置什么,我需要知道最初传递的是什么,所以我可以获得像一样的默认值吗

myfield.default_value

这样我以后就可以操作它,并将操作结果设置为真正的默认值?

添加:我试过

    ->add('username', 'text', array('label' => 'Användarnamn ', 'data' => 'my_own_defaultvalue'))

这对我来说不起作用(不过在很多论坛上都看到了…)。

然后我意识到,最简单的方法可能是在将对象传递给formBuilder之前编辑它,如下所示:

public function editUserAction($id)
{   
    $em = $this->getDoctrine()->getEntityManager();
    $entity = $em->getRepository('BizTVUserBundle:User')->find($id);
    if (!$entity) {
        throw $this->createNotFoundException('Unable to find Container entity.');
    }
      //run some action to modify one of the variables of $entity
    $entity->setUsername($username_stripped); //put my edited variable into the object, now we're ready to pass my new and improved $entity to the formBuilder...
    $editForm = $this->createForm(new editUserType(), $entity);
    return $this->render('BizTVUserBundle:Default:editUser.html.twig', array(
        'entity'      => $entity,
        'edit_form'   => $editForm->createView(),
    ));
}