从symfony提交到twig的复选框的状态

时间:2014-08-01 07:58:12

标签: symfony checkbox request twig

我正在搜索从symfony控制器向twig模板提交复选框的统计信息的方法。因此,用户不需要再次检查表单是否未完成并且需要进一步输入。

由于数据库中会有多个复选框,我会坚持:会提交一个ID({{usergroup.id}}),我想用这个号码检查一下这个id的状态如下:

    {% for usergroup in userGroups %}   
    <input type="checkbox" name="staffdata" value="{{ usergroup.id }}"{%if isChecked{{ usergroup.id }} %}checked="checked" >{& endif %}>{{ usergroup.name }}
    {% endfor %}

当然这不起作用 - 就像我期望的那样:)

任何人都可以给我一个如何让这个工作的提示吗?

编辑:这是实际状态: 输出看起来像这里的脚本:http://www.1stwebdesigns.com/blog/development/multiple-select-with-checkboxes-and-jquery。带有嵌套复选框的选择框。

因此,我需要将所有值作为复选框,而不是选择。实际上,我这样做是为了给block_choice_widget一个新的布局:)

{% block choice_widget_collapsed -%}
//.....

    {% if empty_value is not none -%}
        <li><label><input type="checkbox" {% if required and value is empty %} checked="checked"{% endif %} name="staff-member-usergroup" value="{{ usergroup.id }}">{{ empty_value|trans({}, translation_domain) }}</label></li>

    {%- endif %}
   //......

{%- endblock choice_widget_collapsed  %}

这是有效的但对我来说似乎不是最好的解决方案。但是,正如我在symfony中所做的那样,这是一个有效的解决方案:)是否有更好的方式或可能获得多个复选框?

1 个答案:

答案 0 :(得分:2)

您需要在表单构建器中使用data选项来设置复选框的状态;这是一个documentation

示例代码:

$builder->add('active', 'checkbox', array(
    'label'     => 'Is active?',
    'required'  => false,
    'data' => $entity->getActive()
))