如何强制将twig变量解析为字符串?

时间:2017-03-16 17:23:40

标签: php json twig json-ld

我有一个twig模板,可以在博客页面的底部生成JSON-LD。以下是JSON元数据的一部分:

    {% set dateString %}
        "datePublished": "{{ post.post_date|date('c') }}",
    {% endset %}
    {{ post.settings.hide_publish_date ? '' : '{{ dateString }}' }},

当我查看网页的源代码时的输出是:

"DatePublished": "{{ dateString }}",

我期望看到的是这样的:

"DatePublished": "2017-03-15T10:59:56+00:00",

如何确保我的变量dateString解析为预期值?

2 个答案:

答案 0 :(得分:0)

我可以使用twig replace filter来正确输出日期值。

{% set dateString %}
    "datePublished": "{{ post.post_date|date('c') }}",
{% endset %}
{{ post.settings.hide_publish_date ? '' : '%dateOutput%'|replace({'%dateOutput%': dateString}) }}

网页现在将预期值输出到JSON-LD:

"DatePublished": "2017-03-15T10:59:56+00:00",

答案 1 :(得分:0)

您可以使用twig的template_from_string功能:

  

默认情况下,template_from_string功能不可用。在创建Twig环境时,必须明确添加Twig_Extension_StringLoader扩展名:

您可以在http://twig.sensiolabs.org/doc/2.x/functions/template_from_string.html

上找到更多详情
相关问题