コントローラー外でセッションIDを受け取りたい
受付中
回答 1
投稿
- 評価
- クリップ 0
- VIEW 1,723
symfony2で通常のphpファイルを作成し、セッションの情報を出力したいと思っています。
通常はコントローラーにapp[user]などで取得し、renderでtwigに渡すと思いますが、今回はphpファイルの中でセッションを取得し、そのまま出力したいです。
どの様にして実現ができるでしょうか?
宜しくお願い致します。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.10%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/04/02 21:06
確認してみましたところ、NULLが入っていました。
2016/04/02 21:21
Symfony側とその別PHPファイルでセッションIDは異なってますか?
2016/04/03 16:29
array(0) { }
と出力されました。
状況としては、twigファイルでのページ(test.twigに渡すコントローラー内では以下を記入)
if ($app->isGranted('ROLE_USER')) {
$user = $app['user']['id'];
})
return $app->render('Block/test.twig', array(
'User' => $user,
));
から、<a>タグでphpファイルにリンクを飛ばしている状況です。
また、phpファイルの中身は現在以下になっています。
<?php
session_start();
var_dump($_SESSION);
?>
2016/04/03 18:27
Symfony2ではSessionオブジェクトを経由してセッションを操作できます。
$session = $request->getSession();
$session->set('foo', 'bar');
http://symfony.com/doc/current/book/controller.html#managing-the-session
2016/04/04 10:14
2016/04/04 10:55
できます。セッションは、ページ間で変数の内容を維持するための仕組みです。
2016/04/04 21:15
と記述するには$requestが必要でその$requestを受け取るにはpublic functionが必要で、それにはclassが必要で、、、となってしまいます。
コントローラー外で受け取るのがこう考ると、どうしてもできません。。。
2016/04/05 09:03
2. テンプレートを表示
3. 別PHPファイルへ遷移
4. PHPファイル内でセッションを呼び出す
上記のプロセスだと思ったのですが、異なりますか?
1では$session = $request->getSession();呼び出せばいいですし、
4では$_SESSIONを見ればいいだけだと思います。
2016/04/05 17:36
コントローラー内で格納しましたが、2と3では何かファイルに記述しますか?