arrays - Twig:追加到数组/对象内的数组

标签 arrays symfony drupal twig drupal-8

我有一个对象,在 JSON 中,它看起来像这样:

{
  'class': ['nav-link', 'dropdown-toggle'],
  'data-toggle': ['dropdown']
}

然后我需要能够将另一个类附加到对象内的类数组。

这段代码似乎不起作用;它只是覆盖类数组。

{% set link_attribs = { 'class' : ['nav-link', 'dropdown-toggle'], 'data-toggle':'dropdown'} %}
{% set link_attribs = link_attribs|merge({'class': ['highlighted']}) %}

我真的很想做这样的事情,但它只是抛出一个标点符号错误。

{% set link_attribs.class = link_attribs.class|merge(['highlighted']) %}

有什么想法吗?

最佳答案

使用 Twig,您不能直接设置对象属性,因此“set (...).class”将永远不起作用。但是,您可以创建一个新变量,它将继承 defaultoptions 值(就像在大多数 JavaScript 代码中一样)。

例如:

{%
  set options = link_attribs | merge({
      'class': link_attribs.class | merge(['highlighted']) 
  })
%}

{% for class in options.class %}
  {{ class }}
{% endfor %}

将显示:

nav-link
dropdown-toggle
highlighted

参见 fiddle .

关于arrays - Twig:追加到数组/对象内的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34229313/

相关文章:

C 错误 "variable-sized object may not be initialized"

C++ 入门问题

php - 加入两个mysql表并在php中填充一个数组

symfony - 使用 datafixtures 和 fosuserbundle 创建管理员用户

php - 我可以在 Sonata Admin Controller 中使用 prePersist/preUpdate 来持久化多个对象吗?

php - 在自定义模块中获取 URL 参数

PHP将数据库结果添加到多维数组

php - Symfony2 Doctrine 架构更新失败

drupal - 根据分类术语生成 url 别名

php - 在 php 代码 drupal 7 中使用 drupal_add_js