【发布时间】:2016-02-25 16:49:49
【问题描述】:
我想在 PHP 和 TWIG 的 Symfony2 视图中设置会话值。我可以像这样获得会话值
$app->getSession()->get('whatever');
但不知道如何在视图中设置会话值。请任何人帮助。
【问题讨论】:
-
@TomaszMadeyski 我想在 twig 中设置会话值,而 PHP 无法访问或获取它。所以它和你的不一样。
我想在 PHP 和 TWIG 的 Symfony2 视图中设置会话值。我可以像这样获得会话值
$app->getSession()->get('whatever');
但不知道如何在视图中设置会话值。请任何人帮助。
【问题讨论】:
这是你的树枝扩展,你可以把这段代码放在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') }}
【讨论】: