我正在构建一个需要管理员,用户和商家的CakePHP应用。 商家需要有个人资料。 用户需要为其个人资料提供不同的信息。
我目前有一个用户模型处理启用ACL的登录。
这一切都很好。
我无法解决的问题是如何为商家处理不同的个人资料以及为用户提供不同的个人资料?
典型的网站场景只是“用户hasOne个人资料”,但我需要基于群组类型的不同个人资料。
我似乎无法掌握如何根据用户群体与用户关联的不同数据集。
答案 0 :(得分:1)
如果您的用户/商家/管理员共享相同的用户模型,则与不同的个人资料模型的多态belongsTo
关系应该是正确的。即您可以创建三个不同的配置文件模型,如UserProfile,MerchantProfile和AdminProfile。在您的用户模型中,您有两个字段:profile_class
和profile_foreign_key
,并记录profile_class: Merchant
,profile_foreign_key: 42
等数据。
另见this问题。
或者,您只需将User模型与正常hasOne
关系中的所有三个配置文件模型相关联(外键进入Profile模型),但这可能会使事情变得更复杂。