为什么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) %}
答案 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>