2013-12-18 69 views
0

我的項目在symfony 2.3上使用fosuserbundle運行。 我想獲得當前用戶在控制器symfony 2.3在__construct函數中調用成員函數get()獲取非對象

$securityContext = $this->get('security.context'); 
$this->currentUser = $securityContext->getToken()->getUser(); 

,如果我在indexAction()做它的工作原理。 但我需要用戶在控制器的每個功能,所以我試着把代碼放在__construct函數中,現在它不再工作了。

爲什麼我不能在構造函數中設置變量?

+0

你得到錯誤? – klipach

+2

$ this-> getUser()是你所需要的。看看S2基礎控制器類。您會注意到它沒有構造函數,並且稍後使用setContainer方法注入容器。這就解釋了爲什麼在構造函數中放置這種代碼不起作用。但是,現在的getUser方法意味着你不需要使用consturcor, – Cerad

+0

哦,我明白了。感謝您的快速回答! – Kable

回答

0

裏面的構造函數使用:

return $this->redirect('login'); 

不要使用:

return $this->redirect($this->generateUrl('login')); 

因此,它應該是這樣的:

class DefaultController extends Controller 
    { 
    public function __construct() 
    { 
      return $this->redirect('login'); 
      exit; 

    } 

     /** 
     * @Route("/", name="home") 
     */ 
    public function indexAction(Request $request) 
     { 

     } 
    } 
相關問題