[英]Accessing global variable in your .ctp file?
我現在正在學習cakePHP。 我試圖顯示當前登錄的特定用戶名。
所以我要做的是:
public function beforeFilter() {
$username = '';
if($this->Auth->loggedIn()) {
$username = $this->Auth->user('username');
}
$this->globalUsername = $username;
}
我假設在任何頁面中我都應該能夠將globalUsername作為變量訪問?
那是正確的還是有更好的方法呢?
非常感謝!
如果希望站點上所有頁面都可以訪問它,則必須在AppController中執行此操作。
class AppController extends Controller {
public $globalUsername;
public function beforeFilter() {
$username = ($this->Auth->loggedIn()) ? $this->Auth->user('username') : NULL;
$this->globalUsername = $username;
}
}
另外,我只是將其轉換為IF語句的簡寫形式。 您也可以像最初一樣使用完整版本。 重要的是在方法之外聲明公共變量。
現在,在任何.ctp文件中,首先檢查變量是否不為NULL。 然后只需回顯$this->globalUsername;
$this->set(compact('username'));
嘗試此操作,以便可以在視圖中使用$ username。
瀏覽博客教程和/或文檔:
$this->set('username', $username);
為什么不以默認布局從會話中提取信息呢? 無需將其寫入控制器。
$username = AuthComponent::user('username');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.