2011-09-27 80 views
0

我對CakePHP很新,我只是想知道是否有人可以幫助我做幾件事情。 我有一個User類和一個Image類。CakePHP完成用戶信息

在我users_controller.php中,我有以下功能

function beforeFilter(){ 
    $this->userOb = $this->User->find(); 
} 
function beforeRender(){ 
    $this->set('userOb', $this->userOb); 
} 

這工作得很好,我可以在我的視圖中查看對象,所有的正確關係,Image類。

但是這樣做會覆蓋app_controller.php中的beforeFilter()和beforeRender()函數,所以我嘗試將此功能移到我的app_controller.php中,但出現錯誤(Undefined property:PagesController :: $ User)

此外,

$this->Auth->user(); 

似乎並不具備完整的對象映射

$this->User->find(); 

回報。

所以,我想我的問題是如何創建一個可在所有視圖中訪問的變量,即在app_controller.php中定義的變量,該變量包含當前登錄的用戶對象及其關係。

謝謝。

+0

你可能想回去接受一些舊的答案,你可能會得到更多的答覆 – Stoosh

回答

1

如果問題是你父母的方法正在被孩子的方法覆蓋,只需調用在子父類的方法,見下圖:

function beforeFilter(){ 
    parent::beforeFilter(); 
    $this->userOb = $this->User->find(); 
} 
function beforeRender(){ 
    parent::beforeRender(); 
    $this->set('userOb', $this->userOb); 
} 
+0

謝謝你的工作很棒! – joepour

1

把你的發現結果SessionComponent,所以你不必爲每個請求執行查詢(並在beforeRender中設置變量)。在視圖中,您可以使用SessionHelper訪問它。 $這 - > Auth->用戶();只有用戶記錄。

+0

謝謝,這就是我所做的。 – joepour