【问题标题】:How to set multi-dimensional array in Twig?如何在 Twig 中设置多维数组?
【发布时间】:2014-04-17 21:09:58
【问题描述】:

我正在使用 Twig 在我的 Symfony2 项目中进行模板化。我需要定义一个二维数组。我试过了

{% set fields = { {'name': 'description', 'value':  '1'}, { 'name': 'abc', 'value': '2'}, { 'name':'tags', 'value': '3'} } %}

但我得到了

A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "punctuation" of value "{" in ABundle:XYZ:edit_a_page.html.twig at line 51  

不知道上面的代码有什么问题。

在 twig 中设置二维数组的正确语法是什么?

【问题讨论】:

  • 下次试试JSON,TWIG的数组语法几乎一样

标签: php symfony twig


【解决方案1】:

在 Twig 中,数组用 [] 标记,哈希用 {} 标记。哈希是具有显式键(字符串或整数)的键值对,数组只是一组没有任何显式定义键的值(它们将以数字方式索引)。

为了使用散列,您必须为每个元素提供一个键。

那么,你想要的大概是{% set fields = [ {'name': 'description', 'value': '1'}, { 'name': 'abc', 'value': '2'}, { 'name':'tags', 'value': '3'} ] %}

【讨论】:

  • 那么您将如何更改主键?目前仍然是 0,1,2,3 等。
  • 如果您想设置自己的唯一键,请使用散列语法(外部大括号而不是方括号)并将键放在每个键之前,然后在每个键之前加上一个冒号,如 user1529918 的回答。也很有用:Twig 的 dump 函数,用于验证它所看到的内容。
  • 嗨,这可能是一个愚蠢的问题,但是这个哈希是什么类的对象?它只是一个关联数组? json.decode('{{...},{....}}') 会生成同一类的对象吗?
【解决方案2】:

你可以这样做 {% set foo = {"adjuster_list": {"id": "1", "name": "Joe Smith"}} %}

【讨论】:

  • 或者像这样:{% set foo = {"adjuster_list": [{"id": 1, "name": "Joe Smith"}]} %}
  • 这很有帮助。或者它是 JSON 样式的。
猜你喜欢
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多