从存储库访问会话中两个值的方法 - Symfony2
Way to access from a repository to two values in session - Symfony2
我在会话中有两个值:
classroom and subject
我在我的网络中用处理程序更新了这个值,我在多个控制器中使用,但我有问题?
我调用了一个 EntityRepository 并多次使用了各种函数,具有相同的两个值:classroom 和 subject,所以我决定修改 EntityRepository 的构造函数:
class StudentRepository extends EntityRepository
{
function __construct($em, ClassMetadata $class) {
parent::__construct($em, $class);
$this->classroom = $this->getRequest()->getSession()->get('classroom');
$this->subject = $this->getRequest()->getSession()->get('subject');
}
....
但是,很明显,不起作用,因为我无法访问 EntityRepository 中的会话,而且我认为将这 2 个值放在这个 ER 的每个函数中真的很糟糕,所以,有什么选择吗?
谢谢
您是否考虑过 DI(延迟)session?您可以将以下内容添加到您的服务中:
student_repository_Service:
...
calls:
- [setSession, ["@session"]]
然后,创建 setSession
方法,将 session 存储在变量中,您可以从 $this->session
...[=13= 访问 session ]
我在会话中有两个值:
classroom and subject
我在我的网络中用处理程序更新了这个值,我在多个控制器中使用,但我有问题?
我调用了一个 EntityRepository 并多次使用了各种函数,具有相同的两个值:classroom 和 subject,所以我决定修改 EntityRepository 的构造函数:
class StudentRepository extends EntityRepository
{
function __construct($em, ClassMetadata $class) {
parent::__construct($em, $class);
$this->classroom = $this->getRequest()->getSession()->get('classroom');
$this->subject = $this->getRequest()->getSession()->get('subject');
}
....
但是,很明显,不起作用,因为我无法访问 EntityRepository 中的会话,而且我认为将这 2 个值放在这个 ER 的每个函数中真的很糟糕,所以,有什么选择吗?
谢谢
您是否考虑过 DI(延迟)session?您可以将以下内容添加到您的服务中:
student_repository_Service:
...
calls:
- [setSession, ["@session"]]
然后,创建 setSession
方法,将 session 存储在变量中,您可以从 $this->session
...[=13= 访问 session ]