Symfony 4:多个包含文件

时间:2018-02-17 14:38:48

标签: include twig symfony4

这是我的base.html.twig

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>{% include 'flashes/page-title.html.twig' %}</title>
</head>
    <body>
        <h1>{% include 'flashes/page-title.html.twig' %}</h1>
    </body>
</html>

我想知道为什么twig只包含一次这个文件?

1 个答案:

答案 0 :(得分:2)

当您从闪光袋中收到闪光信息时,信息会同时被清除。您可以在Symfony's documentation of flash messages以及FlashBagInterface API中看到此内容。

所以我的猜测是Twig包含了两次文件,但第二次flashbag只是空的。这就是为什么你没有为h1标签获取任何内容的原因。您可以通过将一些静态内容(例如,只需Hello world)放到flashes/page-title.html.twig文件中来确认这一点,然后查看该文件是否包含两次。

您可以使用peek()方法检索邮件,同时将其保留在包中,例如{% for title in app.flashes.peek('title') %}{% for title in app.session.flashbag.peek('title') %},如果前者不起作用。但是这个消息不会被清除。在您的情况下,它可能是也可能不是问题。

在这种情况下,闪存消息之外的其他方式是否更好?