头文件,我开始使用http://www.php-mvc.net框架的新项目,但从未有过,包括之前不知道如何去它在头文件数据库结果。我需要从数据库中提取当前类别的列表和ID,然后使用它们填充菜单。传递数据库结果到PHP-MVC
header.php文件位于/ views/_templates中。将数据库结果传递给视图的正常方式是在相关模型中运行查询,在控制器中获取数据,将数据从控制器传递到视图,然后在视图中使用foreach循环遍历数据。问题是_template文件没有任何类型的控制器。
我能想出是使用包括和包括从家庭控制器视图文件,使用该控制器来获得满意的结果,并将它们传递到的意见/ home文件夹一个menu.php最好的。
/views/_templates/header.php
<li class="dropdown">
<?php include 'views/home/menu.php'; ?>
</li>
/views/home/menu.php
foreach ($links as $link){
<a href="<?php echo URL . $link->url; ?>"><li><?php echo $link->name; ?></li></a>
}
- 上述代码已被缩短其更多的原理比工作示例。
我提出了一些方法,但我想知道是否有更优雅的做事方式?
通常你会这样做一个“组件”的概念,通常来说,这是一种在单个请求或“子请求”的生命周期中将控制器和视图联系在一起的方式,如果您愿意的话。似乎在您选择的框架内缺少这个概念。 – prodigitalson 2014-10-29 17:13:48
我认为我能看到的唯一的其他选择是使用主控制器类获取信息,将数组存储到会话中,然后遍历头文件中的数组,您是否可以看到任何可能的问题? – twigg 2014-10-29 20:35:39
无需存储在会话中,您可以使用Twig全局,以便在所有模板中都可用,并且可以确保基本控制器运行preExceute将所有数据拉到一起,然后添加该全局。 – prodigitalson 2014-10-31 02:42:32