在视图中处理if / else的有效或合乎逻辑的设计模式是什么?


Laravel - What is the effective or logical design pattern to handle if / else in a view

目前我有一个相当大的项目,我需要为不同类型的用户存储不同的数据。

我需要为模型存储身体细节。

我遇到的问题是,女性的身体信息与男性不同,而代理商、摄影师不需要身体信息,而且用户是分组的

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个不同的页面,我认为它会变得混乱,会导致大量的代码重复

如果有人能给我一点提示,我将很高兴。

谢谢

在视图之外处理这个逻辑,并让逻辑的结果为具有适当结果的视图设置一个变量。至于避免"if-tree",策略模式可能会根据具体情况发挥作用。

正如已经说过的,您应该在视图之外处理这个问题。
单词store data和DB表中的表示应该是使用模型的提示。您可能有一个父类(可能是抽象)ModelBody,您可能会在子类MaleFemale中扩展。
对于不同的用户角色,通常采用ACL (Access Control Level)策略。
此外,所有这些都应该由控制器在逻辑上处理,您可以从中将所需的和过滤的信息传递给视图。