php - mvc 模式、框架、实现

标签 php mysql model-view-controller

你好,我有几个关于 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/

相关文章:

java - Java MVC 模型 2 架构的示例?

javascript - jquery.upvote.js 仅适用于第一行

php - 登录 session 在 Firefox 中立即过期,但在 Chrome 中工作正常

php - PHP 中的流上下文 - 它是什么?

php登录pdo更新

java - 使用 JPA 时实现 MVC

mysql - Drupal 7 从 mysql 数据库恢复不起作用

mysql - 查询异常(23000)SQLSTATE [23000] : Integrity constraint v1452

mysql - Percona 5.6 Docker 镜像无法加载 my/etc/mysql/conf.d/*.cnf

c# - MVC 5 存储数据集,以便我可以在调用 AJAX 方法时检索它