【问题标题】:set session value in symfony2 view在 symfony2 视图中设置会话值
【发布时间】:2016-02-25 16:49:49
【问题描述】:

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

$app->getSession()->get('whatever');

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

【问题讨论】:

  • @TomaszMadeyski 我想在 twig 中设置会话值,而 PHP 无法访问或获取它。所以它和你的不一样。

标签: symfony session twig


【解决方案1】:

这是你的树枝扩展,你可以把这段代码放在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') }}

【讨论】:

  • 我想设置会话而不是在 twig 中获取会话
  • 您可以创建一个 twig 扩展并将@session 发送到这个带有服务容器的扩展。您可以像这样设置新的会话键和值。
  • 我把答案改成了你想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 2011-07-05
  • 2013-06-27
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 2014-10-13
相关资源
最近更新 更多