php - Yii CUserIdentity 与用户模型

标签 php oop yii yii-components yii-inheritance

我的 Yii 项目中至少有一个模型需要引用特定的用户 ID。在我的模型 SQL 中,我有类似 CONSTRAINT FOREIGN KEY (user_id) REFERENCES User(id) 的东西。当我看到 CUserIdentity 的文档时,我打算继续创建一个用户模型。我不得不承认我很困惑。 CUserIdentity 是与特定用户案例关联的用户还是状态?我想尽可能多地使用 Yii 的内置功能,因为据我所知,它们处理了很多与安全相关的问题,而且我知道存在一些模块,如 srbac处理用户身份验证和注册管理。请指导我正确的方向。 (还有一个问题:模型和组件之间的关系是什么?)

最佳答案

首先,请继续创建一个 User模型,您将需要它。

除此之外:CUserIdentity代表“用户是谁”的概念,而User模型代表“关于我的应用程序用户的信息”。 CUserIdentity适用于存在不止一种用户(即访客)的所有情况,而 User模型仅在您自己存储有关用户的信息时适用。诚然,在大多数情况下两者都适用,这就是造成混淆的原因。

通常,两者之间的关系是CUserIdentity ,为了回答诸如“用户是谁”、“用户是否允许访问此资源”等问题,查询 User模型从数据库中获取回答这些问题所需的信息。这两个概念之间的关系也是documented在 Yii 的权威指南中。例如之后对用户进行身份验证,它会公开 User 上的部分或全部信息通过它自己的属性(您必须定义)建模。

举一个没有 User 的场景的例子模型,考虑一个允许您使用 LDAP 用户帐户登录的网站。当 CUserIdentity::authenticate方法被调用时,该组件将根据 LDAP 服务器验证凭据,并且在成功验证后将再次获取任何其他相关信息并通过其自己的属性将其公开。

关于php - Yii CUserIdentity 与用户模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458940/

相关文章:

Python __str__ - 它可以有歧义吗?

php - 如何在 Yii 的索引页面上对用户进行身份验证

ajax - 渲染部分的 Yii 客户端验证不起作用

php - 如何像facebook news feed一样在一个页面中显示多表数据

php - 如何判断一个数组是否有元素?

php - 结合 mysql 中 3 个查询的 3 个输出并进行一些计算

oop - 非 Objective-C 语言中 'receiver' 的等效术语

c++ - 编译器误区

c# - 如何将 windows8 应用程序 c# 与 php api 连接

php - Yii 中 registerCssFile 的正确位置是什么?