2012-09-12 113 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')))

相关问题