MVC - 根据用户加载不同的视图或加载相同的视图?
问题描述:
我正在建立一个网站,有3个用户组,让X,Y和Z。MVC - 根据用户加载不同的视图或加载相同的视图?
在我的控制,我目前做如下:
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
}
,你会在这种情况下怎么办?加载不同的视图?加载相同的视图?我'长大'听说关于编程逻辑脱离视图,所以我只是想知道在这里社区认为它更好。
答
我假设视图足够不同,以便不同类型的用户合法地为每个视图分别需要不同的视图/ HTML。
如果是这样的话,我会更容易在控制器中加载相应的视图。这将导致3个较小的HTML /视图文件来维护,而不是一个大的。
这实际上只是一个偏好问题。
我“长大”听说留下的编程逻辑出来的意见
是啊,我也一样......但我们可以携带想法太...有时是必要的,必须的,其他次它是有用的。我宁愿比教条式的实用主义。
在此使用ifelse是不正确的。如果在其他日子出现+5组,你会怎么做。我会使用像 getGroupView($ group_id){}这样的方法,如果组不存在,将呈现视图并呈现404。如果视图模板不存在,应该是异常 – 2013-02-11 18:31:06
编码现在并不重要,它更像是一个逻辑事物,这个代码在那里只是我输入的东西,可以快速翻译我的不好的解释。 – 2013-02-11 18:33:49