2017-06-18 2 views
0

Hallo Leute, es ist eher eine sehr grundlegende Frage, hatte die Chance, mehrere Fragen auf Stackoverflow, aber alles vergebens zu suchen.Twig iterieren/lesen und erhalten Wert - Octobercms

also habe ich diese Zweig-Variable namens "WordoftheDayfromDB", an die ich aus einigen Daten nach Abfrage DB in meinem Controller über Laravel Methode übergeben. Der Controller erscheint im Plugin von octobercms. Der Inhalt der Variablen ist unter

{% set WordoftheDayfromDB = __SELF__.words %} 
{{WordoftheDayfromDB}} # this output below object 
["{\"id\":4,\"word_tr\":\"parazit\",\"slug_tr\":\"parazit\",\"word_gr\":\"\\u03c0\\u03b1\\u03c1\\u03ac\\u03c3\\u03b9\\u03c4\\u03bf\",\"slug_gr\":\"parasito\",\"pubordraft\":1,\"created_at\":\"2017-06-07 13:04:57\",\"updated_at\":\"2017-06-07 13:04:57\",\"deleted_at\":null,\"word_image\":\"\\\/cropped-images\\\/image2.jpg\",\"typeswb_id\":0}"] 

kann mir jemand einen Weg sagen, Schlüssel und Werte aus der ungefähre Zweigvariable zu extrahieren. , was ich bereits versucht, ist folgende:

<pre> {{WordoftheDayfromDB.id}}</pre> 

oder

{% for item in WordoftheDayfromDB %} {{item.word_tr}} {% endfor %}

auch eine Kombination {% if WordoftheDayfromDB is iterable %} verwenden. Ich werde Ihre Antwort sehr schätzen! danke für das Lesen meiner Frage. beide zugänglich wie diese

Antwort

0

Die Antwort ist ziemlich komplex dann sogar erwartet i! Ich musste viel frustrierend arbeiten, um wirklich auf den Grund zu kommen. Als erstes habe ich einen Cron-Job gemacht, bei dem ich die Daten von einem Modell im Textfeld gespeichert habe. Deshalb, wenn Sie oben Ergebnis sehen d.h

{% set WordoftheDayfromDB = __SELF__.words %} 
{{WordoftheDayfromDB}} # this output below object 

["{\"id\":4,\"word_tr\":\"parazit\",\"slug_tr\":\"parazit\",\"word_gr\":\"\\u03c0\\u03b1\\u03c1\\u03ac\\u03c3\\u03b9\\u03c4\\u03bf\",\"slug_gr\":\"parasito\",\"pubordraft\":1,\"created_at\":\"2017-06-07 13:04:57\",\"updated_at\":\"2017-06-07 13:04:57\",\"deleted_at\":null,\"word_image\":\"\\\/cropped-images\\\/image2.jpg\",\"typeswb_id\":0}"] 

es einen JSON String ausgibt, so schlecht nicht laufen kann oder tun etwas mit ihm.

Um dies zu lösen,

  • erstellen json_decode Filter in Zweig.

  • Wenden Sie den Filter auf Wert Teil des Arrays.

  • Zugriff auf einzelne Werte des Arrays mit der Variablenmethode [Schlüsselname].

habe ich einen Zweig Filter json_decode zum Erstellen von Filter dieses Link

während im Oktober sehen, die Schaffung neuer Zweig Erweiterung ist ziemlich einfach, die nur registerMarkupTags Verfahren in plugin.php mit Filterarray geben wird poiting, um Namen zu benennen und zu funktionieren. Siehe diesen Link für Verlängerung Zweig in Oktober here

Nun, der Teil, auf den wir warteten, wie man die Werte und zeigen sie in Zweig Vorlage. Hier wird es sein, indem ich oben dasselbe Beispiel verwende.Das ist, was ich tat

{% set wordoftheday = __SELF__.words %} 
{% for key, value in wordoftheday %} 
    {% set decoded = value|json_decode %} 
    # to get the indvisual values 
    {{ decoded['id'] }} 
    {{ decoded['created_at'] }} 
{% endfor %} 
0

können Sie die for Schleife verwenden, so dass die Schlüssel und Werte sind:

{% for key, value in WordoftheDayfromDB %} 
    <li>{{ key }}: {{ value }}</li> 
{% endfor %} 
+0

hallo danke für i Antwort versucht, dass man als gut, aber Wert ergibt sich das gesamte Array wie diese '' '0: { "id": 4, "word_tr": "parazit" , "slug_tr": "parazit", "word_gr": "\ u03c0 \ u03b1 \ u03c1 \ u03ac \ u03c3 \ u03b9 \ u03c4 \ u03bf", "slug_gr": "parasito", "pubordraft": 1, "created_at": "2017-06-07 13:04:57", "aktualisiert_at": "2017-06-07 13:04:57", "deleted_at": null, "word_image": "\/cropped-images \/image2. jpg "," typeswb_id ": 0}' '' – Danish

+0

Sind Sie sicher, dass es ein Objekt ist, keine JSON-Zeichenkette? – dragontree

Verwandte Themen