你好,我有几个关于 mvc 模式和框架的问题。 我知道 mvc 代表模型 - View - Controller ,模型很胖, Controller 很瘦,但我不太确定 View 部分的一些细节。 比方说我有这个模型
<?php
class Menu_Model extends Models
{
public function listMenuItems()
{
return $this->query('some_select');
}
}
Controller
<?php
class Menu_Controller extends Controllers
{
public function index()
{
$this->load('menu', 'Menu_Model');
$this->view->assign('menuItems', $menu->listMenuItems());
$this->view->add('menu.php');
}
}
查看
<div class="menu">
<li>{echo_some_data_from_controller}</li>
</div>
上面的代码让我们说是一个简单的菜单快速编写现在..作为一个例子。通过 mvc ideea,它需要有一个模型、一个 View 和一个好的 Controller ,但是我如何在我拥有的每个 View 中实现这个菜单?让我们假设: head.php 文件,我在其中保留导入 css,以基本内容和网站标题从 mysql 获取菜单数据,我需要调用模型,但模型在 Controller 和每个页面中调用有了它自己的 Controller ,所以据我所知,到目前为止,对于每个 Controller 方法,我需要调用特定的模型菜单、登录表单等……在每个页面上输出我需要获取数据或者我该怎么做?
最佳答案
responsibility of a Controller is to handle User Input .如果您的菜单不需要任何用户输入,请将代码放入 View 助手,然后从那里获取模型数据。那么call that View Helper from the View .换句话说:那时您不需要 Controller 。
另一种方法是提供某种机制,允许您在每次调用 Controller 时注册通用功能,例如something like Zend Frameworks's pre- and post-dispatch hooks .然后,您可以为这些 Hook 编写插件,以在每个请求中加载和注入(inject)某些模型数据。
关于php - mvc 模式、框架、实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10714495/