2016-12-21 75 views
-2

我開始學習symfony3,我面臨一個我無法解決的問題。symfony 3菜單問會議

我在我的base.html.twig文件中有一個nav菜單,它隨着一些$_SESSION變量而變化。

例如,假設用戶連接,我想創建一個鏈接,重定向到path/to/myProfile,如果用戶不是,則不管網頁的內容是什麼,都要鏈接到path/to/connection

我可以添加一個{% block menu %},傳遞一個isConnected變量,並做出一些if/else改變鏈接的URL和文本,但由於所有的頁面應該有相同的菜單,我有相同的代碼添加到我製造的每一個控制器

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

在平坦的PHP中,我在的index.php用這個和它的作品真的罰款:

<?php 
$profil_link = isset($_SESSION["login"])?'<a href="profil">Profil</a>':'<a href="connexion">Connexion</a>'; 
$twig->addGlobal("profil_link", $profil_link); 

我看到一個SO後(Dynamic menu with symfony in template),但答案的鏈接是死的,我無法找到任何關於樹枝{% render %}函數(我認爲這是一個symfony2函數)。這與我的問題有關嗎?

編輯:試圖澄清我的問題......

+0

不知道你想做什麼。你能更好地編輯和解釋嗎? –

+0

我不確定如何使它更清晰,但讓我們試試。 –

+0

@ t-n-y更好嗎? –

回答

0

你沒有做這在PHP中如果使用樹枝。

你可以簡單地檢查你的用戶與樹枝相連像

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

謝謝你的支持者。是的,這對我的例子來說可以,但是如果它依賴於除了連接用戶之外的變量(我還不知道)。而且,我認爲決定在視圖中顯示哪個鏈接是不合邏輯的,因爲它需要一些計算。 –

+0

也許你應該問你真正的需要,因爲我不知道你真正想要什麼。你要求登錄/配置文件,這是我們如何在樹枝中做到這一點。也許你需要別的東西,但我不能單獨猜測。 你也應該避免使用$ _SESSION,symfony提供$ request-> getSession(); –

+0

對不起,很難制定一個關於你不完全掌握的框架的問題。 –