2016-12-21 12 views
-2

symfony3を学び始めています。私は解決できない問題に直面しています。symfony 3 menuセッションを依頼する

私の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関数であったと思います)。それは私の問題に関連していますか?

EDITは:あなたは小枝を使用している場合、PHPでこれを行う必要はありません...

+0

ないあなたが何をしたいのかの確認のような小枝が接続されている場合は、単純に確認することができます。編集してよりよく説明できますか? –

+0

私はそれをもっと明確にする方法はわかりませんが、試してみましょう。 –

+0

@ t-n-yはそれが良いですか? –

答えて

0

を私の問題を明らかにすることを試みました。

ユーザーがその

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

あなたのanwserに感謝します。はい、私の例では問題ありませんが、接続しているユーザー以外の変数(私はまだ分かりません)に依存しているかどうかはわかりません。さらに、ある種のコンピューティングが必要なので、ビュー内でどのリンクを表示するかを決定するのはむしろ非論理的なことです。 –

+0

私はあなたが本当に欲しいものがわからないので、あなたは本当の必要性を求めてください。あなたはログイン/プロフィールを求めました、これは私たちが小枝でやる方法です。たぶんあなたは別のものが必要ですが、私は一人ではないと思います。 また、$ _SESSION、symfonyは$ request-> getSession()を使用しないでください。 –

+0

申し訳ありませんが、100%マスターしていないフレームワークに関する質問を作成するのはかなり難しいです。 –

関連する問題