Symfony2 twig代码在xml模板中不起作用,因为它在html中工作

时间:2014-01-08 06:37:57

标签: php html xml symfony twig

为什么twig代码{% set code = code(_self) %}在xml模板中不起作用。

<!-- src/Acme/DemoBundle/Resources/views/Demo/hello.xml.twig -->
<hello>
    <name>{{ name }}</name>
</hello>
{% set code = code(_self) %}

喜欢它在html模板中工作。

{% extends "AcmeDemoBundle::layout.html.twig" %}

{% block title "Hello " ~ name %}

{% block content %}
    <h1>Hello {{ name }}!</h1>
{% endblock %}

{% set code = code(_self) %}

1 个答案:

答案 0 :(得分:1)

好吧,它不是原生的Twig扩展,它是Symfony2标准版DemoBundle提供的额外扩展(https://raw.github.com/symfony/symfony-standard/master/src/Acme/DemoBundle/Twig/Extension/DemoExtension.php)。我刚刚测试过并且它有效但这个code() Twig扩展仅用于HTML模板而不是XML模板。如果您显示XML模板的源代码,您将看到控制器的输出,但它不会显示,因为生成的XML变得无效。如果你真的想要输出,可以使用:

<?xml version="1.0" encoding="UTF-8"?>
<code>{{ code(_self) | escape }}</code>