2017-06-18 64 views
0

嗨,大家好,它是一個非常基本的問題,有機會看看幾個問題在stackoverflow,但都是徒勞。樹枝迭代/讀取和獲取值 - Octobercms

所以我有這個樹枝變量名爲「WordoftheDayfromDB」,我通過laravel pluck方法查詢DB在我的控制器中後,通過一些數據傳遞。控制器存在於十月份的插件中。變量的內容如下所示

{% 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}"] 

有人可以告訴我一種方法來從約twig變量中提取鍵和值。 什麼我已經嘗試過是以下幾點:

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

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

也有些組合使用{% if WordoftheDayfromDB is iterable %}。 非常感謝您的回答! 感謝您閱讀我的問題。

回答

0

所以答案是相當複雜的那麼即使我期待!我必須做大量的沮喪工作才能真正瞭解這件事的底部。 首先,我做了一個cron工作,我在文本類型字段中保存了模型中的數據。這就是爲什麼如果你看到上面的結果,即

{% 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}"] 

它輸出JSON字符串,太糟糕了不能重複或用它做什麼。

爲了解決這個問題,

  • 創建樹枝json_decode過濾器。

  • 將過濾器應用於數組的值部分。

  • 使用變量[keyname]方法訪問數組的各個值。

我創建了一個樹枝過濾json_decode 創建過濾器看到這個Link

,而10月,創建新的樹枝擴展是相當容易,其只給registerMarkupTags方法Plugin.php與濾波器陣列傾向於命名和功能名稱。看到這個鏈接延長樹枝在octobercms here

現在,我們正在等待的部分,如何獲得值,並顯示他們在樹枝模板。這是通過使用上面的相同的例子。這是我做過什麼

{% 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

可以使用for循環,這樣的鍵和值都是這樣既可以訪問:

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

喜謝謝你的答案我想,一個很好,但數值結果全陣列式這樣 '''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」,「updated_at」:「2017-06-07 13:04:57」,「deleted_at」:null,「word_image」:「\/cropped-images \/image2。 jpg「,」typeswb_id「:0}''' – Danish

+0

你確定它是一個對象,而不是json字符串嗎? – dragontree