所以,我正在构建一个可供选择的小表单。但是,我想预先选择其中一些选项,就像我应用selected =“selected”一样。找不到文档中的内容。救命? :d
答案 0 :(得分:1)
要为表单设置默认值,需要在表单的基础数据类中设置这些值。假设基础数据类是实体,则可以在构造中的该实体中默认值。如果您不使用实体注释并且不想更改生成的实体类,则可以将默认值设置为实体类的新实例,并将其用作表单的数据。
例如,对于具有角色数组和方法setRoles(array $ roles)的User实体,可以在User实体的构造函数中默认角色,这样(为清晰起见,使用了硬编码字符串):
public function __construct()
{
$this->setRoles(array('ROLE_USER', 'ROLE_READER', 'ROLE_EDITOR');
}
或者,在表单显示之前,可以在控制器中默认角色(没有表单类和硬编码字符串的简单示例):
$allRoles = array('ROLE_USER', 'ROLE_READER', 'ROLE_EDITOR', 'ROLE_ADMIN', 'ROLE_SUPER_ADMIN');
$user = new User();
$user->setRoles(array('ROLE_USER', 'ROLE_READER', 'ROLE_EDITOR');
$form = $this->createFormBuilder($user)
->add('username', 'text')
->add('roles', 'choice', array('choices' => array_combine($allRoles, $allRoles),
'multiple' => true)
->getForm();
return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
'form' => $form->createView(),
));
答案 1 :(得分:0)
结束比我想象的更简单:
$form['form[selectionMenu]']->select(1);