【发布时间】:2013-12-18 15:40:28
【问题描述】:
我在谷歌上搜索了一下,似乎 TWIG 的创建者真的坚持认为我在这里所做的,对我来说是 VIEW 的纯粹工作,模板根本不应该处理的事情?!
我知道我不能在没有一些自定义 TWIg 过滤器的情况下迭代 stdClass 的对象,所以我现在破解了它,但是如果我不能动态访问属性,那么这个 TWIG 东西真的一点用处都没有。
$fixedModuleNames = array('time', 'date', 'weather'); //since TWIG doesn't iterate over objects by default, this is my solution, don't feel like adding a bunch of twigfilters just for this.
$fixedModules = json_decode($entity->getFixedModules());
/*
Here's what fixedModules look like (although here not JSON but array, before encoded to json, I like to create my JSONs this way in PHP)
$fixedModules["time"] = array(
'show' => true,
'left' => 10,
'top' => 10,
'width' => 100,
'height' => 200,
'fontColor' => '#000000',
'fontSize' => 40,
'fontFamily' => 'Arial',
'borderColor' => '',
'borderRounding'=> 0,
'bgColor' => ''
);
*/
这就是我想要做的......
{% for item in fixedModuleNames %}
<TR>
<TD><input type="number" id="left_{{ item }}" value="{{ fixedModules[item].left }}" class="LayoutModuleEditField" /></TD>
所以这条线失败了
{{ fixedModules[item].left }}
一定有办法解决这个问题,因为我正在做的事情非常例行公事?
【问题讨论】:
-
记录一下:如果你将
true作为json_decode的第二个参数传递,你会得到一个关联数组而不是\stdClass实例。 -
不错!然而,我似乎失去了每个部分的“名称”(上例中的“时间”)。有没有办法保存它?
标签: php symfony object twig stdclass