如何在MVC框架中的视图中显示条件数据?

时间:2009-09-17 16:45:08

标签: php model-view-controller conditional kohana

人们通常如何处理MVC框架中的条件语句

对于我的一些页面(根据Kohana制作),我希望用户有更多选项,具体取决于他们是否登录,以及配置文件是否是他们自己的配置文件。根据您自己的经验,您是创建单独的视图,空变量,在视图中执行逻辑还是什么?

由于

泽纳

2 个答案:

答案 0 :(得分:2)

这取决于基于变量值的视图的不同。例如,如果您只需要隐藏/显示几个控件,我会在视图中包含控件,在某些情况下这些控件将为空,并在其他情况下包含数据。

如果它不止一次显示/隐藏了几个控件,并且您的框架支持“面板”(视图的可重用部分)的概念,我将该组控件分成一个面板并显示/隐藏该小组取决于条件。

这里的权衡是“清洁度”(你是否将两个视图的视图组件混合在一起?)与“易于更新”(如果两个视图是共同演变的,你更新两个地方还是只有一个?)

答案 1 :(得分:2)

就我个人而言,我会将信息传递给视图,以指示要显示的视图片段,因为我认为显示/隐藏显示元素是一种视图逻辑。

在Kohana的情况下,如果要将$ user变量传递给User_Model对象的视图,即使未加载某个人,该对象仍然存在,因此您可以在视图中编写代码等为:

<?php if ($user->logged_in()):?>
<div>Some login only markup here</div>
<?php else:?>
<div>some not login only markup here</div>
<?php endif;?>

您的里程数也可能会有所不同,具体取决于您是使用ORM还是其他类似ORM的库,而不是从头开始编写模型。