2014-11-04 3 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;'}) %} 
Смежные вопросы