arrays - Twig 在一个数组中合并多个事物

标签 arrays symfony twig

我正在尝试为订单系统创建一个包含日期的数组。这些日期与商店无法交付的日期相对应。

我无法创建该数组,因为值是字符串,并且使用 merge 过滤器会不断产生错误。 我只能访问商店的前端,因此无法创建自定义功能。

最终结果需要是一个包含所有日期的数组,以便我可以将其用作 javascript 数组,如下所示:

var closed = [
  {{ closedDates }} // ["01-01-2018", "02-01-2018", etc...]      
];

所以我拥有的是这样的:

1) 网上商店会填写他们关闭的单日以及可能的天数范围。 那是三个变量,例如:

 {{ closedDays }} {# produces eg 01-01-2018, 02-01-2018, 03-01-2018 { it's dd-mm-yy #} 
 {{ date_range_start }} {# produces eg. 10-01-2018 #}
 {{ date_range_end }} {# produces eg. 20-01-2018 #}

2) 所以我做的是这样的:

 {% set closedDates = [] %}    


  {% if theme.closedDays %}
    {% set foo = theme.closedDays %}
    {% for i in foo | slice(0, 5) %}
       {% set closedDates = closedDates | merge(i) %}
    {% endfor %}

  {% endif %}

  {% if theme.date_range_start and theme.date_range_end  %}
     {% set start_date = theme.date_range_start  %}
     {% set end_date = theme.date_range_end %}

     {# below function lists all days between start and end date #}
     {% for weekRange in range(start_date|date('U'), end_date|date('U'), 86400 ) %}
        {% set closedDates = closedDates | merge(weekRange | date('d-m-Y')) %} 
     {% endfor %}
  {% endif %}

当我像上面那样做时,我收到一条错误消息,提示 合并过滤器仅适用于数组或哈希;。但是你如何用这些值创建一个数组呢?这只能通过 merge 完成,对吧?!

非常感谢任何帮助。

最佳答案

在 Twig 中,您不能只将元素推送到数组中。相反,您必须将数组与另一个数组合并。

给定一个数组:

{% set firstArray = ['a', 'b'] %}

如果你想添加元素'c',你必须合并它提供一个数组,即使你想添加单个字符串元素。

{% set firstArray = firstArray | merge(['c']) %}

如果你使用关联数组,它是类比的:

{% set secondArray = {'a': 'string a', 'b': 'string b' } %}
{% set secondArray = secondArray | merge({'b': 'overwritten!', 'c': 'string c' }) %}

唯一的区别是元素 b 将被 secondArray 中的值覆盖,所以你会得到:

{
   'a': 'string a',
   'b': 'overwritten!',
   'c': 'string c'
}

关于arrays - Twig 在一个数组中合并多个事物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47598659/

相关文章:

php - Doctrine - Symfony 查询错误

iOS swift 将 JSON 分离成数组

Java Array 对象返回数组的类型而不是 Array

javascript - 如何使用javascript从数组中绘制折线图

php - 如何从 Symfony Controller 中的路由名称检索路由模式

html - html中的空格选择选项

css - 如何使用 Twig 渲染包含 }} 序列的 CSS 模板

在数组中转换 void 类型指针

symfony - Doctrine Extension Translatable 不检索翻译

php - 使用 Symfony 在 PHP 中查询 MySql