我是 cakephp 的新手,我不会放弃它。
我正在构建一个用户登录并注册一些数据的系统。我希望用户只能看到他们自己的数据。我该怎么做呢?我正在考虑在模型中进行某种限制,或者我是否必须在每个函数中对此进行编码(连接到视图)?
我有一个运行良好的系统,带有用户登录等,但我无法将数据访问权限分开给用户。
我无法弄清楚这一点,我可能会认为这有点因为我可能不知道要问什么。希望有人能帮帮我。
我是 cakephp 的新手,我不会放弃它。
我正在构建一个用户登录并注册一些数据的系统。我希望用户只能看到他们自己的数据。我该怎么做呢?我正在考虑在模型中进行某种限制,或者我是否必须在每个函数中对此进行编码(连接到视图)?
我有一个运行良好的系统,带有用户登录等,但我无法将数据访问权限分开给用户。
我无法弄清楚这一点,我可能会认为这有点因为我可能不知道要问什么。希望有人能帮帮我。
您通过 登录的用户 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 回调将条件添加到查询中。
当用户登录时,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'=>'...............'));