在 Cakephp 中使用 $this->Auth 获取关联模型

2024-01-12

我正在使用 CakePHP 2.0 的集成 Auth 组件。 我有以下表格:

  • Users
  • Groups
  • Profiles

我的模型关系如下:

User belongsTo Group
User hasMany Profiles

登录该站点时,我注意到身份验证会话仅包含用户表信息,但我还需要登录用户的组和配置文件表的信息。

有什么方法可以使用 Auth 组件来做到这一点吗?


没有办法做到这一点AuthComponent因为它处理会话密钥的方式。但是,您可以自己将其保存到会话中。

执行此操作的唯一方法是在用户登录时添加到会话中:

function login() {
    if ($this->Auth->login($this->data)) {
        $this->User->id = $this->Auth->user('id');
        $this->User->contain(array('Profile', 'Group'));
        $this->Session->write('User', $this->User->read());
    }
}

然后在你的beforeFilter()在你的AppController,保存一个 var 供控制器访问:

function beforeFilter() {
    $this->activeUser = $this->Session->read('User');
}

// and allow the views to have access to user data
function beforeRender() {
    $this->set('activeUser', $this->activeUser);
}

Update:从 CakePHP 2.2 开始(在这里宣布 http://bakery.cakephp.org/articles/lorenzo/2012/07/01/cakephp_2_2_and_2_1_4_released),AuthComponent 现在接受“contain”键以在会话中存储额外信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Cakephp 中使用 $this->Auth 获取关联模型 的相关文章

随机推荐

  • cucumber.js 并且不是一个函数

    我正在练习使用 cucumber js 通过 BDD 编写一些单元测试 当我尝试使用 And 语句时 该错误表明 TypeError And is not a function 这是我的代码 feature Feature dataTabl
  • 从 XML 文件获取子节点

    我有一个如下所示的 XML 文件
  • 将多个 csv 文件合并为一个 csv 文件

    我正在尝试将多个 csv 文件合并为一个 并尝试了多种方法 但我很挣扎 我从多个 csv 文件导入数据 当我将它们一起编译成一个 csv 文件时 似乎前几行填充得很好 但随后它开始在行之间随机输入可变数量的空格 并且它永远不会填写完合并的
  • 如何为ant任务创建嵌套元素?

    是否可以为任何 ant 任务创建嵌套元素 例如
  • 解析来自远程网站的 xml 数据

    我想解析来自远程网站的xml数据http services faa gov airport status IAD format xml http services faa gov airport status IAD format xml
  • Visual Studio 2019打开解决方案文件不兼容

    我想我正在使用 Visual Studio 2017 并编写了一个 SSIS 包 现在我安装了Visual Studio 2019 但无法打开解决方案文件 错误 不支持 此版本的 Visual Studio 无法打开 以下项目 项目类型可能
  • Azure Functions 的身份验证

    我花了 24 小时阅读有关如何创建 Azure Functions 的所有内容 并成功将 MVC WebApi 转换为具有多个功能的新 Function App 我的问题是 我没有找到任何关于如何使用它们进行最基本的身份验证的明确文档或教程
  • 为什么没有与 new/delete 系列等价的 realloc?

    正如标题所说 我知道没有与 C 相当的东西realloc in the new delete经营者家族 我已经找到了this https stackoverflow com questions 67225388 implementing c
  • 使用 Tkinter 实现密码对话框

    我正在尝试实现一个获取用户密码的对话框 我已经创建了班级PasswordDiaglog继承自tk Toplevel但这会导致其执行不阻塞父框架的问题 import Tkinter as tk class PasswordDialog tk
  • 启动 TaskHost.exe 失败,尝试运行 Windows Phone 8 应用程序?

    我的 VS 2013 设置已经运行良好几个月了 今天我尝试更新到 Visual Studio 2013 Update 2 RC 就像上次我更新到 Update 1 时一样 安装程序严重失败 并出现大量标有 哈希值不正确 错误的软件包 不幸的
  • 从 PHP 和设置权限在 phpBB3 中创建论坛

    我正在尝试在现有论坛上创建一个新论坛 我可以非常轻松地创建新论坛并从管理控制台查看它 问题是我也需要它向用户显示在前端 这是通过权限完成的 因此 我试图做的是将父论坛 公开的 的权限复制到我创建的论坛 然而 该论坛似乎仍然没有出现在面向公众
  • onActivityResult 的问题

    我正在创建一个应用程序 在应用程序启动时相机会打开拍照 我还在应用程序中实现了 Facebook 登录FB Login http developers facebook com docs howtos androidsdk 3 0 logi
  • 黑莓:选择列表中的项目,返回上一屏幕

    我为我的问题准备了一个非常简短的测试用例 如下 单击按钮时 我想在新屏幕中显示字符串列表 用户选择列表中的一项后 应再次显示上一屏幕 并且按钮标签应设置为所选字符串 我的两个问题是 从菜单内部我不知道如何弹出当前显示的屏幕 如何将所选项目从
  • Terraform - Azure 作为提供商和受限访问帐户

    我想使用 Terraform 在 Azure 上部署一些资源 在 Azure 上 我拥有一个仅对一个资源组 RGName 具有 所有者权限 的帐户 不在订阅级别 在我的 Linux 服务器上 我安装了 az cli 并执行了 az logi
  • +CNMI命令:如何接收通知并保存到SIM卡收到的短信

    我需要收到成功发送的通知 我读了很多并尝试过 我有 GSM 调制解调器中兴K4510Z 我没有收到任何通知或保存到 SIM 卡 在我的测试中 我以为我的SIM卡坏了 所以我尝试AT CMGW将临时消息写入 SIM 卡 它成功并存在 所以最后
  • 仅使用下划线检查是否存在重复的数组对

    我想知道如何检查数组中的重复值对是否作为 javascript 中较大数组的一部分存在 你可以看到有一对重复的 1 2 所以函数应该返回true i e var arr 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1
  • 如何让两个物体碰撞后粘在一起?

    我真的很困惑 我可以成功检测到碰撞 但我无法使参与碰撞的两个物体粘在一起 这是我的联系监听器 world setContactListener listener listener new ContactListener Override p
  • 获取 Android 通知以横幅形式显示

    我相当广泛地研究了各种术语 横幅 弹出 通知类型 但我似乎无法清楚地了解我 认为 的一个非常常见的问题 因此 如果由于缺乏术语而导致我错过了一个非常明显的解决方案 请提出建议 问题是这样的 我希望 Android 通知显示为从屏幕顶部掉落的
  • 如何自动填充 SQLAlchemy 数据库字段? (Flask-SQLAlchemy)

    我有一个简单的用户模型 定义如下 models py from datetime import datetime from myapp import db class User db Model id db Column db Intege
  • 在 Cakephp 中使用 $this->Auth 获取关联模型

    我正在使用 CakePHP 2 0 的集成 Auth 组件 我有以下表格 Users Groups Profiles 我的模型关系如下 User belongsTo Group User hasMany Profiles 登录该站点时 我注