3

ベースに組み込まれたセッションベースのデータが必要なアプリケーションに小枝をプラグインしたいと考えています。たとえば、クライアントの現在のタイムゾーンがフッターに表示されます。個々のコントローラーがこれを知っていても意味がありません。一方、ビューを選択して入力します。

class MyController 
{

    public function index()
    {
        $template = $this->twig->loadTemplate('myPageTemplate.html.twig');
        return $template->render($dataArray);
    }
}

ビューを選択する前にデータオブジェクトをtwigに渡し、それをベーステンプレートで利用できるようにする適切な方法はありますか? Twig_Environment を起動して渡す際に行うことはありますか?

4

3 に答える 3

1

セッション変数はコントローラーで設定する必要があります。docsでわかるように、次のようになります。

public function indexAction(Request $request)
{
    $session = $request->getSession();

    // store an attribute for reuse during a later user request
    $session->set('foo', 'bar');

    // get the attribute set by another controller in another request
    $foobar = $session->get('foobar');

    // use a default value if the attribute doesn't exist
    $filters = $session->get('filters', array());
}

これらの変数は、次のようなテンプレートをレンダリングするときに簡単に渡されます。

return $this->redirect($this->generateUrl('home', array('foobar' => $foobar)));
于 2014-08-09T18:56:23.077 に答える