大家好,这是一个非常基本的问题,有机会在stackoverflow上查看几个问题,但都是徒劳的。
所以我有这个名为" WordoftheDayfromDB"的twig变量,我通过laravel pluck
方法在我的控制器中查询DB后从一些数据传递到该变量。控制器存在于octobercms的插件中。变量的内容如下所示
{% 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}"]
有人可以告诉我一种从about twig变量中提取键和值的方法。 我已经尝试过的是:
<pre> {{WordoftheDayfromDB.id}}</pre>
或
{% for item in WordoftheDayfromDB %}
{{item.word_tr}}
{% endfor %}
也使用{% if WordoftheDayfromDB is iterable %}
的某种组合。
我非常感谢你的回答!
谢谢你阅读我的问题。
答案 0 :(得分:0)
您可以使用for
循环,以便可以像这样访问键和值:
{% for key, value in WordoftheDayfromDB %}
<li>{{ key }}: {{ value }}</li>
{% endfor %}
答案 1 :(得分: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
现在,我们正在等待的部分,如何获取值并在树枝模板中显示它们。在这里,通过使用上面的相同例子。这就是我所做的
{% 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 %}