如何设置symfony会话

时间:2016-08-17 14:37:22

标签: php symfony session

这可能是一个荒谬的问题,但我现在只知道Symfony只有几个月而且我从未配置过会话。我理解documentation中发生了什么,但我在哪里实例化新会话?我是否在editAction中执行此操作?

因为我有一个editAction,只要有人进行编辑,就会将电子邮件发送给主管,但是如何将每个订单的每个订单编辑限制为一封电子邮件?

我只需要在editAction中添加这样的内容吗?

$session = new Session();
$session->start();

// set and get session attributes
$session->set('order', '...');
$session->set('supervisorEmail', '...');
$session->set('time', '...');

有人可以帮我提供完整的样本或指导我吗?我非常感激。谢谢。

1 个答案:

答案 0 :(得分:4)

会话由内核自动启动,因此您无需手动启动它。在控制器中,您可以通过请求检索:

use Symfony\Component\HttpFoundation\Request;    

public function editAction(Request $request)
{
    $session = $request->getSession();
    $session->set('order', '...');
    $session->set('supervisorEmail', '...');
    $session->set('time', '...');
}

您还可以检查会话是否已有属性,如下所示:

if (false === $session->has('order') {
    $session->set('order', '...');
}