Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在MVC框架中的视图中显示条件数据?_Php_Model View Controller_Conditional_Kohana - Fatal编程技术网

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

Php 如何在MVC框架中的视图中显示条件数据?,php,model-view-controller,conditional,kohana,Php,Model View Controller,Conditional,Kohana,人们通常如何处理MVC框架中的条件语句 对于我的一些页面(在Kohana下制作),我希望用户有更多的选项,这取决于他们是否登录,以及该配置文件是否是他们自己的配置文件(例如)。根据您自己的经验,您是否创建了单独的视图、空变量、视图中的逻辑还是什么 谢谢 Zenna这取决于基于变量值的视图的不同程度。例如,如果您只需要隐藏/显示两个控件,我会在视图中包含一些控件,这些控件在某些情况下为空,而在其他情况下则包含数据 如果一次显示/隐藏多个控件,并且您的框架支持“面板”(视图的可重用部分)的概念,那么

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

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

谢谢


Zenna

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

如果一次显示/隐藏多个控件,并且您的框架支持“面板”(视图的可重用部分)的概念,那么我会将该组控件分离为一个面板,并根据条件显示/隐藏该面板


这里的折衷是“干净”(一个视图中有两个视图的混合视图组件吗?)与“易于更新”(如果两个视图都是协同进化的,是更新两个位置还是只更新一个?

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

如果一次显示/隐藏多个控件,并且您的框架支持“面板”(视图的可重用部分)的概念,那么我会将该组控件分离为一个面板,并根据条件显示/隐藏该面板


这里的折衷是“干净”(一个视图中有两个视图的混合视图组件吗?),我认为显示/隐藏显示元素是一个视图逻辑。

在Kohana的情况下,如果要将$user变量传递给作为user_模型对象的视图,即使未加载人员,该对象仍将存在,因此可以在视图中编写代码,例如:

<?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的库而不是从头开始写模型。

< P>我将把信息传递给视图来指定要显示的视图的片段,因为我认为显示/隐藏显示元素是一个视图逻辑。

在Kohana的情况下,如果要将$user变量传递给作为user_模型对象的视图,即使未加载人员,该对象仍将存在,因此可以在视图中编写代码,例如:

<?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的库,而不是从头开始编写模型