【发布时间】:2010-01-15 03:33:57
【问题描述】:
我正在构建一个需要管理员、用户和商家的 CakePHP 应用程序。 商家需要有个人资料。 用户需要为其个人资料提供不同的信息。
我目前有一个启用 ACL 的用户模型处理登录。
一切正常。
我无法理解的是,如何处理不同的商家资料和不同的用户资料?
典型的网站场景只是“用户 hasOne 个人资料”,但我需要基于组类型的不同个人资料。
我似乎无法掌握如何根据用户组将不同的数据集与用户相关联。
【问题讨论】:
我正在构建一个需要管理员、用户和商家的 CakePHP 应用程序。 商家需要有个人资料。 用户需要为其个人资料提供不同的信息。
我目前有一个启用 ACL 的用户模型处理登录。
一切正常。
我无法理解的是,如何处理不同的商家资料和不同的用户资料?
典型的网站场景只是“用户 hasOne 个人资料”,但我需要基于组类型的不同个人资料。
我似乎无法掌握如何根据用户组将不同的数据集与用户相关联。
【问题讨论】:
如果您的用户/商家/管理员都共享相同的用户模型,那么与不同的配置文件模型建立多态 belongsTo 关系应该是正确的做法。 IE。您制作了三种不同的配置文件模型,例如 UserProfile、MerchantProfile 和 AdminProfile。在您的用户模型中,您有两个字段:profile_class 和 profile_foreign_key,并记录 profile_class: Merchant、profile_foreign_key: 42 等数据。
另请参阅this 问题。
或者,您只需将 User 模型与所有三个配置文件模型以正常的hasOne 关系(外键进入配置文件模型)关联,但这可能会使事情变得更复杂。
【讨论】:
beforeFilter 中动态配置 AuthComponent 以使用不同的模型进行身份验证。您必须决定什么是最有意义/导致工作量最少的。