1

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

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

4

1 回答 1

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(),
    ));
}   
于 2012-08-21T13:22:01.503 回答