如何在PHP MVC中集成菜单/页脚/菜单

时间:2015-06-10 12:12:58

标签: php html

我知道这个问题已经被问到了。但我还是不明白。

现在我试图了解如何使用MVC Modell。 但我不知道如何整合所有东西,现在我在犹豫是否真的得到它之前使用框架。

我努力实现的目标:

我希望标题,页脚和菜单始终保持不变。 像这样:

HEADER
MENU
{CONTENT}
FOOTER


所以我的想法是:

我的控制器获取一些信息,让我们说它是一个用户ID。

Controller从Model中调用一个方法: 获取USER的所有数据ID:1

然后控制器将DATA传递到视图中,让我们说一个列表。

那么从哪里开始呢? 控制器是否应将此视图传递到另一个视图?

像:

$site = new View(); <br>
$site->wholeSite($content);

然后网站就像:

HEADER
MENU
{$content}
FOOTER

请原谅我的简单方法,我只是想了解它背后的基本想法,我已经阅读了谷歌搜索它的前20页。 只是不能让我的头围绕它..... 如果你能为初学者解释它,那将是非常好的:)

提前致谢!

2 个答案:

答案 0 :(得分:1)

您可以从控件中调用多个视图,如:

pc

如果您有嵌套div,那么您可以使用常规包含函数,例如来自特定视图文件。

$this->load->view('header',$data);
$this->load->view('menu',$data);
$this->load->view('content',$data);
$this->load->view('footer',$data);

根据视图文件的路径。数据也会从父视图传输到包含的文件。

答案 1 :(得分:0)

通常,MVC应用程序具有通用布局视图,其中包含页眉,页脚和菜单。有时需要的数据是在控制器外部处理的,比如你的init脚本或bootstrap。

MVC纯粹主义者可能会从控制器传递布局所需的所有数据,但这可能是重复的,尽管在抽象控制器构造中设置数据可能会减轻这一点。

关于观点和子观点的问题,通常有两种解决方案:

A。)您有一个主要视图,其中传递了所有必需的数据。在该视图中,调用子视图(部分),并将数据传递给它们。

B。)您在控制器中实例化所有视图,将所需的所有数据直接传递到视图中,然后将视图作为参数传递到其他视图中。

这两种方法各有利弊。我发现第一个选项导致Fat Controllers减少,所以我通常会这样做。

我建议你学习一个现有的MVC框架(CodeIgniter,现在已经不存在了,足以让它成为一个很好的切入点),因为它会向你展示如何完成任务。