CakePhp为特定用户从另一个表中提取数据

CakePhp为特定用户从另一个表中提取数据,php,cakephp-2.0,Php,Cakephp 2.0,我有一个cakephp2应用程序,其中用户基于他们在db上的凭据登录。身份验证和授权工作正常 我有一个notes表,其中存储了用户的注释。每个用户可以有许多注释 在一个页面上,我需要提取登录用户的所有注释 我创建了一个便笺模型: class Note extends AppModel { public $name = 'Note'; public $belongsTo = 'User'; } 在我的用户模型中,我有: class User extends AppModel { publi

我有一个cakephp2应用程序,其中用户基于他们在db上的凭据登录。身份验证和授权工作正常

我有一个notes表,其中存储了用户的注释。每个用户可以有许多注释

在一个页面上,我需要提取登录用户的所有注释

我创建了一个便笺模型:

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;
}
但无论我运行什么find语句,我都不能只获取特定用户的注释。我运行debug($id)并在屏幕上显示false,因此显然无法识别当前用户id


我必须列出一个用户的所有注释,然后链接到每个注释页面。

在cakePHP中集成一个AUTH组件…这样您就可以通过AUTH函数和类似($this->AUTH->user('ID')的数组登录用户ID/Info

对于身份验证集成,请使用下面的链接作为参考

现在在查找记录时像这样使用此用户ID


$this->Note->find('all',array('conditions'=>array('Note.user\u id'=>$this->Auth->user('id'))

您是否确实将任何ID传递给控制器?例如:/notes/getnotes/3?不,实际上我不将Uer ID传递给getnotes页面,也不希望这样做。我希望避免这样做,以获得更清晰的URL,同时也是出于安全目的。您知道自己说的是对的吗?如果您不通过GET/POST传递ID,您将如何体验t
$this->User->id=$id;
要工作吗?
$id
来自哪里?如果未设置(通过GET/POST),它将始终为NULL(因为您将其设置为默认值
($id=NULL)
)无论哪种方式,你都需要在某处传递一个ID参数……如果你通过POST传递,那么你将无法通过URL引用特定的注释,这将是一个大问题。我建议你在涉猎诸如MVC之类的概念之前,先多了解一下web是如何工作的。我确实知道web是如何工作的,并且我很清楚传递参数等…我没有提到的是,由于用户已登录,我希望$current_user($id)或$this->Auth->user('id')可以在控制器中访问,因此我可以在查询语句中使用它。但是无论我尝试什么,该值都不会被注册/传递。。。