Twig:添加json_decode作为过滤器

时间:2017-05-01 21:10:05

标签: php json twig decode

我正在尝试解码我​​的twig文件中的JSON字符串。当然我已经做了一些研究,我在StackOverflow上找到了这个早期的问题:here。他们给出了一种在树枝上解码JSON的方法,但我真的不明白我应该这样做的方式。

他们说有关创建文件等的内容,但我不明白应该在哪里创建它们。所以我试图找到另一种方式。

我想出了this页面。当我们看一下'过滤器'时,会出现这些线:

$filter = new Twig_Filter('rot13', function ($string) {
    return str_rot13($string);
});

所以我想我可以像这样使用它们:

$filter = new Twig_Filter('json_decode', function ($string) {
    return json_decode($string);
});

现在,我想知道这种方式是否有效。此外,我必须把这些代码行放在哪里。最后,我是否必须使用这样的过滤器:

{{ data.params|json_decode }}

当我出错时,请告诉我我错误的观点,或者给我一个应该为我做好工作的简单解决方案。

修改 我在Silex框架中使用twig!

2 个答案:

答案 0 :(得分:0)

<?php
    $app = new \Silex\Application();
    $app->register(new \Silex\Provider\TwigServiceProvider(), []);  
    $app['twig']->addFilter(new Twig_SimpleFilter('json_decode', function ($string) {
        return json_decode($string);
    }));

答案 1 :(得分:0)

Twig让您很痛苦,因为您几乎找到的所有信息都是该版本的另一个版本,Twig背后的人都是优秀的开发人员,他们也比以前做得更好。 但是它们也会破坏您在进度中惯用的一切。

$twig_env->addFilter(new \Twig\TwigFilter('json_decode','json_decode'));