2015-02-11 33 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訪問會話...