这是我的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只包含一次这个文件?
答案 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') %}
,如果前者不起作用。但是这个消息不会被清除。在您的情况下,它可能是也可能不是问题。
在这种情况下,闪存消息之外的其他方式是否更好?