【问题标题】:PHP :: MVC All Controller requests through Model?PHP :: MVC 所有控制器请求都通过模型?
【发布时间】:2019-04-23 13:33:19
【问题描述】:

最好的做法是让所有信息都通过 MODEL 传递给 CONTROLLER?

例如,我有一个名为“Apps”的控制器和一个名为“App”的模型。我想显示一个包含用户列表的表单,该表单位于库文件夹的“用户”类中。我可以直接从 CONTROLLER 直接从“Users”类请求用户列表,还是最好先通过 MODEL,然后再到 CONTROLLER?

TIA

【问题讨论】:

  • 控制器不应该从模型层提取信息。他们的职责是改变所述层的状态。视图类负责从模型层收集当前(或更改的)状态并使用它填充模板。

标签: php model-view-controller


【解决方案1】:

MVC 正常工作的方式是 View 向 Controller 发出请求。然后控制器访问模型,处理所有业务逻辑并更新视图。

所以在你的情况下,用户类可能是你的模型。

例如。

  • 视图请求用户列表
  • 控制器处理请求并从模型中获取用户列表(例如通过数据库)
  • 然后控制器使用列表更新视图,或者视图可以访问列表并呈现它。

Here 是更多信息。

【讨论】:

    【解决方案2】:

    当您用php 标记您的问题时,我可以用它的术语来解释。视图(HTML 表单或 AJAX)向控制器发出请求,通常是一个 php 文件(通过 post 或 get 请求)处理并将请求重定向到(模型)单独的 php 代码与数据(DB)一起使用的代码,该代码将结果返回给控制器和它是一个模型。考虑使用一些适合您需求的现有 MVC 框架。

    Model-view-controller 是一种架构模式,通常用于 开发将应用程序分为三个的用户界面 相互连接的部分。这样做是为了分离内部 从信息的呈现方式对信息的表示 给用户并从用户那里接受。 MVC 设计模式将这些解耦 主要组件允许有效的代码重用和并行 发展。 https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

    【讨论】:

      【解决方案3】:

      我同意你的观点,但我们必须考虑项目的规模。例如,在一个大型项目中,我通常像控制器 服务 模型 表一样命令它。

      • 表:运行 sql (CURD)
      • 模型:调用表完成一项功能(如获取文章后也需要更新查看次数)
      • 服务:调用模型完成一项功能(如支付)
      • 控制器:输入/权限验证器然后调用服务完成它。

      当然,如果一个简单的博客我们可以在控制器中完成所有工作。

      同样的视图思路,可以整页,可以将组件组合为一页,组件也可以有子组件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-09
        • 1970-01-01
        • 2013-10-22
        • 2018-10-07
        • 2011-02-25
        • 1970-01-01
        • 2020-01-13
        • 2018-07-30
        相关资源
        最近更新 更多