2012-09-12 42 views
0

我有一個cakephp2應用程序,用戶根據他們在db上的憑據登錄。身份驗證&授權正常工作。CakePhp從另一個表中爲特定用戶提取數據

我有一個筆記表,其中存儲了用戶的筆記。每個用戶可以有很多筆記。

在一個頁面上,我需要提取登錄用戶的所有筆記。

我創建了一個音符模式:

class Note extends AppModel { 

public $name = 'Note'; 

public $belongsTo = 'User'; 

} 

,並在我的用戶模型,我有:

class User extends AppModel { 
public $name = 'User'; 
public $displayField = 'name'; 
public $hasMany = 'Note';.... 

在我創建了UserController中:

public function getnotes($id = null) { 
$this->User->id = $id; 
} 

但不管什麼發現我運行的聲明,我不能只得到特定用戶的筆記。我運行調試($ id),並在屏幕上出現錯誤,所以顯然當前用戶標識未被識別。

我必須列出用戶的所有筆記,然後鏈接到每個單獨的筆記頁。

+0

您是否確實將任何ID傳遞給控制器?例如:/ notes/getnotes/3? – vanneto

+0

實際上,我沒有將Uer Id傳遞給getnotes頁面,並且不願意這樣做。我希望避免這種情況,以便擁有更清晰的URL並出於安全目的。 – user1661286

+0

你確實意識到你說的對嗎?如果你不通過GET/POST傳遞ID,你如何期待'$ this-> User-> id = $ id;'工作? '$ id'從哪裏來?如果沒有設置(通過GET/POST),它將始終爲NULL(因爲您將其設置爲默認值'($ id = null)') – vanneto

回答

0

集成的AUTH成分在CakePHP ......所以你會得到通過身份驗證功能和陣列狀($這個 - > Auth->用戶( '身份證'))

用於身份驗證登錄的用戶ID /信息集成使用下面的鏈接作爲refence http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

現在這樣使用該用戶ID查找記錄

$這個 - >注意 - >找到(「所有」,陣列(「條件」 =>陣列(注.user_id'=> $ this-> Auth-> user('id')))

相關問題