【问题标题】:MVC - Load different views depending on user OR load the same view?MVC - 根据用户加载不同的视图或加载相同的视图?
【发布时间】:2013-02-11 18:21:37
【问题描述】:

我正在构建一个有 3 个用户组的网站,让 X、Y 和 Z

在我的控制器上,我目前正在执行以下操作:

if(user_group="X"){
//logic goes here
load_view("X");
}
elseif(user_group="Y"){
//logic goes here
load_view("Y");
}
elseif(user_group="Z"){
//logic goes here
load_view("Z");
}

我这样做的原因是因为每个用户都应该加载一个完全不同的页面,用户基本上不会分享他们所看到的任何共同点,所以我认为加载不同的视图看起来会更干净取决于用户组。

我可以为不同的用户加载相同的视图:

if($user="X"){
//view HTML
}
elseif($user="Y"){
//view HTML
}
elseif($user="Z"){
//view HTML
}

在这种情况下你会怎么做?加载不同的视图?加载相同的视图?我“长大”听说将编程逻辑排除在视图之外,所以我只是想知道社区认为什么更好。

【问题讨论】:

  • 在此使用 ifelse 是不正确的。如果在其他日子出现+5组,你会怎么做。我会使用 getGroupView($group_id) {} 之类的方法,如果组不存在,它将呈现视图并呈现 404。如果视图模板不存在应该是例外
  • 编码现在并不重要,在这一点上它更像是一个逻辑问题,上面的代码只是我快速输入的东西来翻译我的错误解释。

标签: php codeigniter templates


【解决方案1】:

我假设视图的差异足以让不同类型的用户合法地要求每个视图单独的视图/HTML。

如果是这样,我会发现在控制器中加载适当的视图会更容易。这将导致需要维护 3 个较小的 HTML/视图文件,而不是一个 LARGE。

这真的只是一个偏好问题。

我“长大”时听说将编程逻辑排除在视图之外

是的,我也是……但我们可以把这个想法推得太远……有时它是必不可少的和必要的,有时它很有用。我宁愿务实而不是教条。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    相关资源
    最近更新 更多