Twig循环通过JSON

时间:2017-02-06 09:07:49

标签: php json loops twig

Array
(
    [page_title] => Slovak RS
    [page_footer] => © Copyright 2017
    [is_published] => published
    [menu] => {
    "id":"1",
    "name": "main_menu",
    "items": [
        "pos1": [
        "display_name" : "Informácie",
        "path"         : "informacie"
    ],
        "pos2": [
        "display_name" : "Videá",
        "path"         : "video"
    ],
        "pos4": [
        "display_name" : "Recepty",
        "path"         : "recepty"
    ],
        "pos5": [
        "display_name" : "Galéria",
        "path"         : "galeria"
    ],
        "pos6": [
        "display_name" : "Osobnosti",
        "path"         : "osobnosti"
    ],
    ],
    "updated_at": "2020"
 }
)

这是我进入twig模板文件的数据。我希望将单个db表中的菜单存储为json。我可以显示像{{ menu }}, {{ page_title }}这样的项目,但很难在json部分循环

这是我试过的

 {% for item in menu %}
    {{ item.id }}
    {{ item['id'] }}
    {% endfor %}

    {% for key,value in menu %}
    Key : {{ key }}
    Value : {{ value }}
    {% endfor %}

我正在使用twig 2.x而且我是新手

1 个答案:

答案 0 :(得分:1)

在您将JSON传递给twig之前,您应首先json_decode使用JSON。有了这个,你有一个数组或对象,你可以循环。

$objJson = json_decode($yourDBArray['menu']);
$arrJson = json_decode($yourDBArray['menu'],true);

在您提供的代码中,JSON是string而不是array,也不是object