【发布时间】:2010-12-18 04:58:43
【问题描述】:
就像在经典 PHP 中一样,我们使用魔法变量来启动和创建会话,那么在 Symfony 中如何做到这一点?
【问题讨论】:
标签: php symfony symfony1 symfony-1.4
就像在经典 PHP 中一样,我们使用魔法变量来启动和创建会话,那么在 Symfony 中如何做到这一点?
【问题讨论】:
标签: php symfony symfony1 symfony-1.4
在 Symfony2 中,语法不同:
$session = $this->getRequest()->getSession();
// store an attribute for reuse during a later user request
$session->set('foo', 'bar');
// in another controller for another request
$foo = $session->get('foo');
您还可以从 Twig 获取会话变量,而无需显式传递会话变量(它在全局“应用程序”中):
{{ app.session.get('foo', 'bar'); }}
【讨论】:
getRequest() 从 Symfony 2.4 开始被弃用。现在执行此操作的正确方法是将请求注入控制器并调用$request->getSession()。 api.symfony.com/2.0/Symfony/Component/HttpFoundation/…
在您的控制器中,您可以通过用户对象访问会话变量。
// Get a session value
$name = $this->getUser()->getAttribute('name', 'default_value');
// Set a session value
$this->getUser()->setAttribute('name', $value);
【讨论】:
$sf_user 变量访问会话变量,就像您在控制器中使用$this->getUser() 一样。