2016-04-07 13 views
0

メソッドが存在するのですか(未取得)twigファイルでセッション変数を定義していますか?このよう :symfony 2のtwigでセッション変数を設定する

{{ app.session.set('key', value) }} 
+0

app.session.has( 'key') – Matteo

+2

なぜアプリケーション状態をテンプレートから変更したいのですか? – eRIZ

+0

仕事をしている小枝のカスタム[extension](http://twig.sensiolabs.org/doc/advanced.html)を作成する – DarkBee

答えて

0

Actualyいや、あなたは小枝でセッション変数を設定することはできませんが、簡単に、コントローラにそれを追加することができます:symfonyのことができます3では

public function someAction() 
{ 
    // In a controller 
    $session = $this->get('session'); 
    $session->set('filter', array(
     'accounts' => 'value', 
    )); 
} 
// In Twig 
{% set filter = app.session.get('filter') %} 
{% set account-filter = filter['accounts'] %} 
} 
+1

これはデフォルトではできないかもしれませんが、OPがtwigをカスタム彼のためのセッションを設定できる拡張子 – DarkBee

+1

同意するが、何かをセッションに設定するために、なぜあなたが小枝を必要とするか、サーバー側でコンパイルされる方法を慎重に考える必要がある。 –

2

を。

{{ app.session.set('test', 1) }} 
{{ dump(app.session.get('test')) }} 
+1

できますが、テンプレートからセッションを変更しないでください:] – goto

+1

、理由を説明してください。 –

+2

@HoussemZitounビジネスロジックを決してテンプレートに実装しないでください。テンプレートには表示するデータとそのデータのみが必要です。将来、テンプレートを変更したい場合、テンプレート内のビジネスロジックについて心配する必要はありません – Basit

0

symfony 3ではセッションを設定または更新できます。

{{ app.session.set('test', 'Apple') }} 
{{ app.session.get('test') }} // return Apple 

{{ app.session.set('test', 'Apple') }} 
{{ app.session.set('test', 'Strawberry') }} 
{{ app.session.get('test') }} // return Strawberry 
関連する問題