在symfony中设置选择框的默认值

时间:2014-04-16 07:44:25

标签: php symfony twig

我已阅读this问题

树枝中的代码如下

{{ form_widget(form.skills,{ value : "{{allocation.skills.skillsId }}", 'attr': {'class': 'right skillClass', } }) }}

form.skills创建一个选择框,{{allocation.skills.skillsId }}始终返回选择框中存在的有效值。

但是这段代码不能正常工作,而直接数字常量工作非常精细。

{{ form_widget(form.skills,{ value : "5", 'attr': {'class': 'right skillClass', } }) }}

提前谢谢你能说出如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

你的语法不正确,你应该改用它:

{{ form_widget(form.skills,{ value : allocation.skills.skillsId, 'attr': {'class': 'right skillClass', } }) }}

注意

值必须是字符串,因此有两种方法可以实现此

  • 在控制器中的表单中设置默认值
  • 将字符串传递给视图
  • 将整数“转换”为twig中的字符串

在控制器中设置表单中的默认值

->add("skills", "choice", array("label" => "Skills", "choices" => $yourChoices, "attr" => array("class" => "right skillClass"), 'preferred_choices' => array(allocation.skills.skillsId)))

将字符串传递给视图

return $this->render("Bundle:view.html.twig", array("yourId" => (string)$yourId));

并在树枝中使用yourId

{{ form_widget(form.skills,{ value : yourId, 'attr': {'class': 'right skillClass', } }) }}

将整数转换为树枝中的字符串(非常脏)

{{ form_widget(form.skills,{ value : "" ~ allocation.skills.skillsId ~ "", 'attr': {'class': 'right skillClass', } }) }}