2015-02-11 30 views
1

我已在会议两个值:方式从库中取得两个值会话 - Symfony2的

教室和主题

我在我的网页更新处理程序这个值,并我在多个控制器中使用,但我有问题?

我称之为EntityRepository和使用各种功能多次,使用相同的两个值:教室和主题,所以我决定修改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'); 
    } 
.... 

但是,obvius,无法正常工作因为我无法访问EntityRepository中的Session,并且我认为将这2个值放在这个ER的每个函数中它真的是一个垃圾,所以,任何选项?

谢谢

回答

2

您是否考虑过DI(推迟)会话?您可以添加以下服务:

student_repository_Service: 
... 
calls: 
    - [setSession, ["@session"]] 

然后,创建setSession方法,在变量存储会话,你可以从$this->session访问会话...