PHP MVC,局部 View ?

标签 php model-view-controller view partial

我正在构建一个小型 PHP MVC,但我在一小部分编码方面碰壁了。我想我需要“局部 View ”,但我也许可以用现有代码实现一些东西。

目前我的 Controller 是最简单的形式:

  • 实例化一个对象
  • 检查是否设置了 POST 变量
  • 根据需要显示 View 1 或显示 View 2

当前的 View :

  • 显示 HTML 标记
  • 使用并回显模型获取getUserInfo()等函数

一切都很好,但是现在 Controller 和 View 中的代码都变得相当大,我遇到了需要在主视图(1 和 2)中包含“模块”或 subview 的情况.

例如,如果加载了 view2,那么我需要显示(作为 view2 的一部分)另一个 View ,比如一个由 3 部分组成的注册表格。此注册表单也带有它自己的 Controller 文件。

我可以做这样的事情,它会起作用并让您了解我正在尝试做的事情,但我承认这会破坏 MVC 设计模式。

查看

<div id="mydiv">Some content</div>
<div id="mysignup"> <?php include('controller_signup.php'); ?></div>
<div id="content"> The views main page content </div>

然后 View 从 Controller 中拉入正确的位置。

如前所述,我认为我需要使用部分 View ,但是我找到的大部分信息都是针对 ASP 的,我有点迷路了!

我原以为这是一个相当普遍的问题,所以我认为有一个明显的解决方案!

谢谢!

最佳答案

你问题的根源是你没有观点。你所说的“ View ”实际上是一个 template .这反过来会强制 Controller 中的表示逻辑。

在正确的 MVC View 中,实例是包含所有表示逻辑的实例。他们从模型层获取信息,然后根据数据选择如何显示这些信息。每个 View 操作多个模板。

此外,您的 Controller 似乎获得了额外的责任。它应该改变模型层和当前 View 的状态,而不是渲染模板。

关于PHP MVC,局部 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11844488/

相关文章:

php - MySQL PHP 继续结果超出限制

php - 如何保留文本框的值?

php - 如何使用similar_text()改进PHP字符串匹配?

model-view-controller - 在域内容更改时更新Grails VIEW

android - 什么是 Android View 的测量状态?

javascript - 在 React Native 中并排显示图像和文本

javascript - Backbone.js:在 View 之间导航 - 销毁和重新创建

php - 创建数据库表的最佳方法是为不同的用户提供不同的列

php - 在 PHP mvc 中路由 url 的最有效方法?

ruby-on-rails-3 - 没有事件记录的嵌套属性