2011-12-16 62 views
5

我有一個行爲,可以根據存儲在會話中的用戶標識實現用戶數據的分離。在CakePHP 1.3,你可以這樣做:在cakephp中的行爲中讀取一個會話變量2

App::import('Component', 'Session'); 
$session = new SessionComponent(); 
$session->read('Auth.User.id'); 

但在CakePHP中2,因爲組件__construct需要控制器的ComponentCollection作爲參數,你不能像實例化一個組件的行爲。

是否可以在CakePHP 2中的行爲中訪問會話變量?什麼是最好的方式來做到這一點?

回答

23

如果你看看SessionComponent的代碼,你會發現它只是CakeSession類的封裝。

所以,你可以做到以下幾點:

App::uses('CakeSession', 'Model/Datasource'); 
$user_id = CakeSession::read('Auth.User.id'); 
+1

很好的接收..顯然沒有想太多,當我昨晚發佈這個。 – 2011-12-16 18:43:31

3

在CakePHP 2.0你也可以簡單地調用通過靜態CakeSession ::方法()會議的方法,而無需加載任何...; - )

+3

好吧,你的類仍然應該有`App :: uses('CakeSession','Model/Datasource');`語句,不過! ;) – mark 2012-05-24 13:43:38

相關問題