[解決済み] テンプレート内のログインユーザーにアクセスする
質問
FOSuserbundleを使って、ユーザー登録をしています。 https://github.com/FriendsOfSymfony/FOSUserBundle
登録/ログイン/ログアウトはできました。今やりたいことは、ログインしたユーザーのデータを取得し、サイトのすべてのページでそれを表示することです。ヘッダーに"こんにちはユーザー名"のようなものです。
の中にコントローラを埋め込んでいるように見えます。 app/Resources/views/base.html.twig にコントローラを埋め込んでいるようです。 に埋め込むのが一番良い方法だと思います。 http://symfony.com/doc/current/book/templating.html#embedding-controllers
そこで、ユーザープロファイルデータにアクセスするためのコントローラを書きました。しかし、私の組み込みコントローラでFOSメソッドにアクセスする方法がわかりません。そこで、私の Acme/UserBundle/Controller/UserController.php を参照してください。 私はこれをしたいのです。
public function showAction()
{
$user = $this->container->get('security.context')->getToken()->getUser();
if (!is_object($user) || !$user instanceof UserInterface) {
throw new AccessDeniedException(
'This user does not have access to this section.');
}
return $this->container->get('templating')
->renderResponse('FOSUserBundle:Profile:show.html.'.$this->container
->getParameter('fos_user.template.engine'), array('user' => $user));
}
から取ってきたものです。 vendor/bundles/FOS/UserBundle/Controller/ProfileController.php から取得しました。
どのように解決するのですか?
コントローラで何もリクエストしなくても、twigテンプレートで直接ユーザーデータにアクセスすることができます。ユーザはこのようにアクセスできます :
app.user
.
これで、ユーザーのすべてのプロパティにアクセスできるようになりました。例えば、ユーザー名には次のようにアクセスできます。
app.user.username
.
警告、ユーザがログインしていない場合は
app.user
はnullになります。
ユーザがログインしているかどうかを確認したい場合は
is_granted
twig 関数を使用します。たとえば、ユーザが
ROLE_ADMIN
を持っているかどうかを調べたい場合、次のようにすればよいでしょう。
is_granted("ROLE_ADMIN")
.
ですから、すべてのページで、:
{% if is_granted("ROLE") %}
Hi {{ app.user.username }}
{% endif %}
関連
-
[解決済み] Composerで単一のライブラリを更新する方法は?
-
[解決済み】Symfony 2.xでは、本当にすべてをバンドルにすべきなのか?
-
[解決済み】Twigテンプレートで現在のURLを取得する?
-
[解決済み] Symfony2 の config.yml から設定を読み込むには?
-
[解決済み] Symfony2のTwigテンプレートで設定パラメータを取得する方法
-
[解決済み] symfony2のコントローラでparameters.ymlから読み込むにはどうしたらいいですか?
-
[解決済み] findAll Doctrine のメソッドを並べ替えるには?
-
[解決済み] Twigのパスに複数のパラメータを追加する
-
[解決済み] Symfony 2: テンプレート内でユーザーがログインしていないことを確認するにはどうすればよいですか?
-
[解決済み] Symfony2でTwigテンプレート内の環境名を取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Composerで単一のライブラリを更新する方法は?
-
[解決済み】Doctrine QueryBuilder で行数を数える。
-
[解決済み】Symfony 2.xでは、本当にすべてをバンドルにすべきなのか?
-
[解決済み】Twigテンプレートで現在のURLを取得する?
-
[解決済み] Symfony2 の config.yml から設定を読み込むには?
-
[解決済み] Symfony2のTwigテンプレートで設定パラメータを取得する方法
-
[解決済み] composer.jsonのチルダ(~)は何を意味しているのですか?
-
[解決済み] symfony2 : リクエストをフォームにバインドした後にフォームのバリデーションエラーを取得する方法
-
[解決済み] Symfony 2: テンプレート内でユーザーがログインしていないことを確認するにはどうすればよいですか?
-
[解決済み] Symfony2でTwigテンプレート内の環境名を取得する