Twig基于键设置数组值

时间:2014-11-04 14:35:16

标签: html symfony twig

我在这附近发现了类似这样的问题,但那里的答案对我没有帮助。

<table>
<tr>
    <th>Permission</th>
{% for role in roles %}
    <th>{{role}}</th>
{% endfor %}
</tr>
{% for permission in permissions %}
    {% if permission.PermissionName != currPerm %}
        {% if currPerm != '' %}
        <tr>
            <td class="current-permission">{{currPerm}}</td>
            {% for perm in permArray %}
            <td>{{perm}}</td>
            {% endfor %}
        </tr>
        {% endif %}

        {% set currPerm = permission.PermissionName %}
        {% set permArray = default %}
    {% endif %}
    {% set permArray[permission.RoleId] = '&check;' %}
{% endfor %}

<tr>
    <td>{{currPerm}}</td>
    {% for perm in permArray %}
    <td>{{perm}}</td>
    {% endfor %}
</tr>
</table>

上面的代码包含这一行

{% set permArray[permission.RoleId] = '&check;' %}

我在设置其包含的每个键的值时遇到问题我尝试使用合并但运气好的话它只会为数组添加一个新键,这就是全部。 如果您对此代码有任何其他建议,我会全力以赴。

1 个答案:

答案 0 :(得分:0)

使用Twig,您不能像这样为数组键赋值。

您必须使用merge filter执行以下操作:

{% set permArray[permission.RoleId] = permArray|merge({permission.RoleId:'&check;'}) %}