在symfony2视图中设置会话值

时间:2016-02-25 07:30:47

标签: symfony session twig

我想在PHP和TWIG中在Symfony2视图中设置会话值。我可以像这样获取会话值

  

$ APP->的getSession() - >获得('无论&#39);

但是我不知道如何在视图中设置会话值。请帮助。

1 个答案:

答案 0 :(得分:2)

这是您的twig扩展,您可以将此代码放在YourBundle/Twig/SessionExtension.php

namespace YourBundle\Twig;

use Symfony\Component\HttpFoundation\Session\Session;

class SessionExtension extends \Twig_Extension
{
    private $session;

    public function __construct(Session $session) {
        $this->session = $session;
    }

    public function getFilters()
    {
        return array(
            new \Twig_SimpleFilter('setSession', array($this, 'setSession')),
        );
    }

    public function setSession($key, $val){

        $this->session->set($key, $val);
        return true;
    }

    public function getName()
    {
        return 'session_extension';
    }
}

为树枝添加服务;

yourbundle.twig.session_extension:
      class: YourBundle\Twig\SessionExtension
      arguments:
          session: "@session"
      tags:
          - { name: twig.extension }

现在,你可以在树枝上使用;

{{ 'test'|setSession('myKey', 'myValue') }}