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

时间:2012-08-17 20:06:26

标签: php forms symfony

所以我读过我可以通过这样做设置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'))

这对我不起作用(虽然在一堆论坛中看过......)。

1 个答案:

答案 0 :(得分:0)

然后我意识到可能最简单的方法是在将对象传递给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(),
    ));
}