symfony 3菜单要求会话

时间:2016-12-21 15:29:20

标签: twig symfony

我开始学习symfony3,我遇到了一个我无法解决的问题。

我的// // Implement the PropertyChangeListener interface // @Override public void propertyChange(PropertyChangeEvent e) { // A cell has started/stopped editing if ("tableCellEditor".equals(e.getPropertyName())) { if (table.isEditing()) // code for editing started; else // code for editing stopped; } } 文件中有一个nav菜单,它随着base.html.twig个变量而变化。

例如,假设我想创建一个链接,如果用户已连接,则重定向到$_SESSION,如果用户不是,则为path/to/myProfile,无论页面的内容是什么。

我可以添加path/to/connection,将{% block menu %}变量传递给它并制作一些isConnected来更改链接的网址和文字,但由于所有网页都应该有相同的菜单,我必须为我制作的每个控制器添加相同的代码。

如何在调用任何控制器之前更改父模板?

在平板php中,我在index.php中使用了它,它的工作原理非常好:

if/else

我看到了一个SO帖子(Dynamic menu with symfony in template),但答案中的链接已经死了,我找不到关于twig <?php $profil_link = isset($_SESSION["login"])?'<a href="profil">Profil</a>':'<a href="connexion">Connexion</a>'; $twig->addGlobal("profil_link", $profil_link); 函数的任何信息(我认为它是一个symfony2函数)。它与我的问题有关吗?

编辑:试图澄清我的问题......

1 个答案:

答案 0 :(得分:1)

如果你使用树枝,你不会在php中做到这一点。

您可以简单地检查您的用户是否与这样的树枝相连接

{% if app.user %}
   <a href="{{ path('logged_path') }}">Profil</a>
{% else %}
   <a href="{{ path('login_path') }}">Connexion</a>
{% endif %}