あるコントローラーでセッション変数を作成しましたが、別のコントローラーでそれにアクセスしたいと考えています。loginsuccess
コントローラーでセッションを設定しました:
$session->set('id',$id);
別のコントローラーでこの変数にアクセスするにはどうすればよいですか?
Cyprianの回答は有効ですが、ドキュメントには次の使用法があります。
use Symfony\Component\HttpFoundation\Session\Session;
$session = new Session();
$session->start();
// set and get session attributes
$session->set('id',$id);
$session->get('id'); //this is the line you are looking for
http://symfony.com/doc/master/components/http_foundation/sessions.html
ノート:
セッションを明示的に開始することをお勧めしますが、セッションは実際にはオンデマンドで開始されます。つまり、セッション データの読み取り/書き込みを行うセッション リクエストが行われた場合です。
コメントに書き込む 3 番目の方法があります。
use Symfony\Component\HttpFoundation\Session\SessionInterface;
public function indexAction(SessionInterface $session)
{
$session->set('test', 'yes !');
}
このようにして、タイプヒント付きの変数を取得できます。この方法で、IDE の Session オブジェクトのメソッドにアクセスできます。