0

我是 cakephp 的新手,我不会放弃它。

我正在构建一个用户登录并注册一些数据的系统。我希望用户只能看到他们自己的数据。我该怎么做呢?我正在考虑在模型中进行某种限制,或者我是否必须在每个函数中对此进行编码(连接到视图)?

我有一个运行良好的系统,带有用户登录等,但我无法将数据访问权限分开给用户。

我无法弄清楚这一点,我可能会认为这有点因为我可能不知道要问什么。希望有人能帮帮我。

4

2 回答 2

0

您通过 登录的用户 id $this->Auth->user('id');。然后,您必须在 find 调用 where 上设置条件user_id = $userId

$userId = $this->Auth->user('id');

$this->SomeRelatedModel->find('all', array(
    'conditions' => array(
        'SomeRelatedModel.user_id' => $userId,
    ),
));

您还可以将$userId变量传递给模型并在那里进行查找调用(方法或自定义查找调用)。

如果您的许多模型/查找调用需要按用户 ID 过滤,您可能需要创建一个行为并使用 beforeFind 回调将条件添加到查询中。

于 2013-10-18T17:21:01.180 回答
0

当用户登录时,Auth 会将 ID 存储在会话中。您可以使用 $this->Session->read('Auth.User.id')or$this->Auth->user('id')AuthComponent::user('id')

$this->User->find('all',array(
                            'conditions'=>array('id'=>$this->Session->read('Auth.User.id')),
                            'fields'=>'...............'));
于 2013-10-19T14:24:17.143 回答