我是cakephp的新手,我不会放弃它。
我正在构建一个用户登录并注册一些数据的系统。我希望用户只看到自己的数据。我该怎么做呢?我在考虑在模型中做出一种限制,还是我必须在每个函数中编写代码(连接到视图)?
我有一个运行良好的系统用户登录等,但我无法将数据访问权限分离给用户。
我无法弄清楚这一点,我可能会认为这有点因为我可能不知道该问什么。希望有些人能帮助我。
答案 0 :(得分:0)
您已通过$this->Auth->user('id');
登录用户ID。然后,您必须在user_id = $userId
的查找呼叫中设置条件。
$userId = $this->Auth->user('id');
$this->SomeRelatedModel->find('all', array(
'conditions' => array(
'SomeRelatedModel.user_id' => $userId,
),
));
您还可以将$userId
变量传递给模型并在那里进行查找调用(方法或自定义查找调用)。
如果很多模型/查找调用需要按用户ID过滤,您可能需要创建一个行为并使用beforeFind回调将条件添加到查询中。
答案 1 :(得分:0)
当用户登录时,Auth会将Id存储在会话中。你可以使用它来访问它
$this->Session->read('Auth.User.id')
或$this->Auth->user('id')
或AuthComponent::user('id')
$this->User->find('all',array(
'conditions'=>array('id'=>$this->Session->read('Auth.User.id')),
'fields'=>'...............'));