目前我有一个非常大的项目,我需要为不同类型的用户存储不同的数据。
我需要存储模型的正文细节。
我遇到的问题是,女性的身体信息与男性不同,代理商,摄影师不需要身体信息,用户也在群体中
group 3 - Model
group 4 - Agency
group 5 - photographer
在我的观点中,我目前正在这样做
if ($group == 3 && $gender == 2)
{
// load female body information (lot of details)
}
elseif ($group == 3 && $gender == 1)
{
// load male body information (lot of details)
}
else
{
// load just work explerience & company info
}
将用户信息存储在3个表中
users . login information
users_details - users details, like first last name gender ect
users_body - Body information for models both female / male
那么为什么我要求提供更有效的方法提示,因为我需要在3个不同的页面上显示此类信息,我认为它会变得混乱并导致大量代码重复
如果有人可以给我任何建议的提示会很高兴
谢谢
答案 0 :(得分:5)
在视图外部处理此逻辑,并将逻辑结果设置为具有适当结果的视图的变量。至于避免“if-tree”,根据具体情况,策略模式可能会有用。
答案 1 :(得分:3)
正如已经说过的那样,你应该在视图之外处理这个问题
单词store data
和DB表中的表示应该是使用模型的提示。您可能有父类(可能是抽象的)类Model
或Body
,您可以在子类Male
和Female
中扩展它们。
为了处理不同的用户角色,通常ACL(访问控制级别)是正确的策略
此外,所有这些都应该由控制器进行逻辑处理,您可以从中将所需的和过滤的信息传递给视图。