我在Symfony 3.4中使用FOSUserBundle . 一切都正常 . 我用我自己的模板覆盖了FOSUserBundle模板 . 我检查用户是否因密码或电子邮件不正确而无法登录的方式是这样的:
login.html.twig
{% trans_default_domain 'FOSUserBundle' %}
...Some html nothing fancy
{% if error %}
<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}
....Rest of file content
</div>
这没有问题 . 在通过我的安全文件处理故障后,用户当然会被重定向到索引页面 .
但是,我尝试在index.html.twig中使用上面的if语句,它认为它是未定义的 . 我想使用它,所以我可以例如,当用户被重定向到索引页面以显示我的自定义消息时 . 是否有一个"error"变量在该twig文件中被设置为全局的所有twig文件?
1 回答
FosUserBundle在symfony flashBag中存储错误,您可以使用此代码
你可以看一下这个FosUserBundle的模板https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/views/layout.html.twig
或更多全球https://symfony.com/doc/current/controller.html#flash-messages
如果要更改默认错误消息,则应该替换FosUserBundle的默认转换 .