2016-09-30 36 views
0

好吧,我已經閱讀了各種帖子,例如CakePHP 3.x - AuthComponent::user() in View,但是那裏的解決方案並沒有告訴你哪裏有這樣的代碼,所以它可以在任何地方工作應用程序。CakePHP 3 - 訪問視圖中的用戶數據(.ctp文件)

在CakePHP 2.x中,直接在登錄用戶的導航欄中顯示這樣的用戶名。這樣做的方式是使用Auth組件,然後在AppController中使用一組用戶詳細信息(名字,姓氏等)設置全局可訪問的變量。

在CakePHP 3.x中,我看不出如何實現這一點。

諸如$this->Auth->user('id');之類的東西似乎只適用於控制器。

我明白你可以將它從控制器傳遞給視圖。但是如果你想在全局模板(例如default.ctp)中呢?你如何在CakePHP 3.x中做到這一點? Cake的網站上的文檔並沒有真正告訴你,因爲它僅以$this->Auth->user('id');爲例。

回答

0

請注意,組件在控制器中使用和助手在模板中使用。沒有建立Auth助手。

由於所有登錄的Auth用戶數據都存儲在會話中,並且同時存在Session助手和Session組件,我們可以在模板中使用前者。

$user = $this->request->session()->read('Auth.User'); 

這將返回在這種格式記錄在用戶所有的細節:

Array(
    [id] => 1 
    [username] => abc 
    [email] => [email protected] 
    ....... 
) 

參考:Accessing the Session Object

相關問題