2012-04-11 2 views
8

symfonyのドキュメントは言う:
Symfony2のは:PHPテンプレートでのセッション・グローバル変数は

During each request, Symfony2 will set a global template variable app in both Twig and PHP template engines by default. The app variable is a GlobalVariables instance which will give you access to some application specific variables automatically:
app.security - The security context.
app.user - The current user object.
app.request - The request object.
app.session - The session object.
app.environment - The current environment (dev, prod, etc).
app.debug - True if in debug mode. False otherwise.

例:小枝で
:PHPで{{ app.request.method }}
:小枝でecho $app->getRequest()->getMethod(){{ app.user.username }}
しかし、セッションオブジェクトのために:
小枝:{{ app.session.varname }}
PHP:// I don't know, do you know how to call it?

私が試してみた:$session = $app->getSession('uid');が、私はそれをデータベースに保管しようとすると、それは私に語った:

Catchable Fatal Error: Object of class Symfony\Component\HttpFoundation\Session could not be converted to string in C:\wamp\www...

あり、それはPHPのテンプレートに来る資源の不足だが、私の場合、私は切り替えることができません何らかの理由で

言い換えれば、PHPのテンプレートではどういう意味ですか:
{{ app.session.varname }}?小枝で

答えて

13

:PHPで{{ app.session.varname }}

echo $app->getSession()->get('uid');

+1

ちょっと私を嘲笑していますか? :)グレートな男、それは、あなたの答えのためにトンをありがとう。 –

+0

モックを意図していません。私はあなたの質問をコメントアウトし、どんな問題がアドレスになっているかを明確にするように配慮しました。その後、@Daniel Ribereiroが入り、編集しました。理由は分かりませんが、意図を邪魔しました。 – Cerad

+0

私の悪い、それは良い意図であった。 –

0
$session = $this->get('session'); 

if ($session->has('varname')) { 
    echo $session->varname 
} 
+1

あなたは確実にpage.html.phpテンプレートで動作しますか?これは私にこのエラーを与えます: 'Notice:未定義のプロパティ:Symfony \ Bundle \ FrameworkBundle \ Templating \ Helper \ SessionHelper :: $ Uid in C:\ wamp \ www \ ...'各コントローラについて、セッション値をレンダリングしていますが、私がここで私の質問から避けようとしていることは、Symfony2のドキュメントが上で述べたようにグローバル変数を使う必要があるということです。 –

0

はあなたがerror_logに$ APP-にしようとしている>のgetSession()が返すものを参照するには?

error_log(var_dump($app->getSession(), true)); 
関連する問題