所以我已经读到,我可以通过执行以下来设置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(),
));
}