所以我读过我可以通过这样做设置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'))
这对我不起作用(虽然在一堆论坛中看过......)。
答案 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(),
));
}