[英]Use session in service with Symfony
我想在Symfony的服務中使用我的用戶會話。
所以,我在控制器中:
$service = $this->container->get('myservice');
$timeline = $service->getThing();
我需要在功能getThing()
,檢索我的用戶會話。 我不想添加像getThing($session)
這樣的getThing($session)
我怎樣才能做到這一點 ?
正如@Igor所說,將會話(和安全上下文)注入到控制器中(因為它是一種服務)。
Services.yml
services:
my.controller:
class: "%mybundle.controller.foo.class%"
arguments: [@session, @security.context]
控制器;
<?php
use Symfony\Component\HttpFoundation\Session\Session;
class Foo
{
private $sessionManager;
private $securityContext;
public function __construct(Session $session, $security_context)
{
$this->sessionMananger = $session;
$this->securityContext = $security_context;
}
public function someAction()
{
$id = $this->getId();
}
private function getId()
{
return $this->securityContext->getToken()->getUser()->getId();
}
}
您可以將會話注入您的服務。 容器中的會話密鑰為@session
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.