2014-11-04 89 views
0

我在这里发现了类似这样的问题,但从那里得到的答案并没有帮助我。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;' %} 

在那里我有问题的是它含有我试图合并,但如果运气好的话,只增加了一个新的关键阵列的每个键设定值就这样。 如果您对此代码有任何其他建议,我全身心投入。

回答

0

使用Twig,您不允许为这样的数组键赋值。

必须使用merge filter做这样的事情:

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