2017-02-06 38 views
1
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" 
} 
) 

Dies ist Daten, die ich in Zweig Vorlage Datei bekomme. Ich will, dass das Menü in der einzelnen db-Tabelle als json gespeichert wird. Ich kann Gegenstände wie {{ menu }}, {{ page_title }}, zeigen aber harte Zeiten haben durch diese json Teil LoopingTwig Schleife durch JSON

Dies ist, was ich versucht

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

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

ich Zweig 2.x bin mit und ich bin Neuling

+0

ist nicht möglich, dekodieren in der Zweigvorlage, siehe [diese] (http://Stackoverflow.com/a/14504988/2270041) Lösungen, wenn für Sie gut ist – Matteo

Antwort

1

Sie sollte json_decode der JSON zuerst, bevor Sie es an Zweig übergeben. Damit haben Sie ein Array oder Objekt, das Sie durchlaufen können.

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

Im Code, den Sie zur Verfügung gestellt haben, ist die JSON ein string und kein array noch ein object.

+0

perfekte Lösung, danke –