当前位置: 首页 > 面试题库 >

在Twig中解码JSON

糜野
2023-03-14
问题内容

可以在Twig解码JSON吗?谷歌搜索似乎对此没有任何帮助。在Twig中解码JSON没有意义吗?

我正在尝试访问Symfony2的实体字段类型(Entity FieldType)上的2个实体属性。

实体类中的某处:

/**
 * Return a JSON string representing this class.
 */
public function getJson()
{
   return json_encode(get_object_vars($this));
}

并采用以下形式:

$builder->add('categories', 'entity', array (
...
'property' => 'json',
...
));

之后,我希望json_decode在Twig …

{% for category in form.categories %}
    {# json_decode() part is imaginary #}
    {% set obj = category.vars.label|json_decode() %}
{% endfor %}

问题答案:

如果您伸出Twig,那很容易。

首先,创建一个包含扩展名的类:

<?php

namespace Acme\DemoBundle\Twig\Extension;

use Symfony\Component\DependencyInjection\ContainerInterface;  
use \Twig_Extension;

class VarsExtension extends Twig_Extension
{
    protected $container;

    public function __construct(ContainerInterface $container) 
    {
        $this->container = $container;
    }

    public function getName() 
    {
        return 'some.extension';
    }

    public function getFilters() {
        return array(
            'json_decode'   => new \Twig_Filter_Method($this, 'jsonDecode'),
        );
    }

    public function jsonDecode($str) {
        return json_decode($str);
    }
}

然后,在您的Services.xml文件中注册该类:

<service id="some_id" class="Acme\DemoBundle\Twig\Extension\VarsExtension">
        <tag name="twig.extension" />
        <argument type="service" id="service_container" />
</service>

然后,在您的Twig模板上使用它:

{% set obj = form_label(category) | json_decode %}


 类似资料:
  • 我有一个MySQL数据库,其中有些内容是用Ckeditor创建的。文本存储方式如下: ,HTML实体也是如此。 对于Twig,在Symfony项目中,当我要显示数据时,我对此字段使用但它显示 所以它没有完全解码和解释... 使用PHP我没有问题,可以很好地完成这项工作。 你能帮帮我吗?怎么啦? 根据需要,更多代码:在MySQL中的utf8_general_ci列“vtexte” 在symfony中

  • 本文向大家介绍Perl用XML :: Twig解析,包括了Perl用XML :: Twig解析的使用技巧和注意事项,需要的朋友参考一下 示例            

  • Twig 是一个灵活、快速、安全的 PHP 模板语言。它将模板编译成经过优化的原始PHP代码。Twig拥有一个Sandbox模型来检测不可信的模板代码。Twig由一个灵活的词法分析器和语法分析器组成,可以让开发人员定义自己的标签,过滤器并创建自己的DSL。 特性: 快速:Twig将模板编译为纯优化的PHP代码。与常规PHP代码相比,开销降低到最低限度。 安全:Twig具有沙盒模式以评估不受信任的模

  • 问题内容: 我应该使用哪种构造来检查Twig模板中的值是否为NULL? 问题答案: 根据您的实际需求: 检查值是否为: {% endif %} 检查是否定义了变量: {% endif %} 另外,对两个值进行类型严格比较的测试可能对检查(如)以外的值很有用:

  • 我只是想在PHP5.6的服务器上安装我的Symfony 3.2应用程序,而

  • 在本章中,我们将研究Twig Filters and Functions 。 过滤器也用于根据需要使用所需的输出格式化数据。 函数用于生成内容。 Twig模板是包含由值替换的表达式和变量的文本文件。 Twig使用三种类型的标签。 Output tags - 以下语法用于在此处显示已计算的表达式结果。 {{ Place Your Output Here }} Action Tags - 以下语