【问题标题】:Some logical business in controller or all in model [MVC] PHP控制器中的一些逻辑业务或模型中的全部 [MVC] PHP
【发布时间】:2023-03-07 09:30:02
【问题描述】:

我一直在用 MVC 模式构建一个系统,但我一直坚持方法的实现。

在我的应用程序中,公司可以获得用户的评分。该公司可以或不存在于我的应用程序中,因此在插入评级之前,该公司必须存在于数据库中。

我的问题是:我必须在模型中实现所有业务逻辑还是在控制器中实现一些验证?

控制器

  1. 检查是否有$_POST;
  2. 检查公司是否存在;
  3. 如果不存在,则从 Company 模型中执行 insert() 并返回插入的 id;
  4. 使用$_company_id(评级模型)插入评级;

控制器

  1. 检查是否有$_POST
  2. 使用公司参数从评级模型执行insert()

评级模型

  1. 检查公司是否存在;
  2. 如果不存在,则从 Company 模型中执行 insert() 并返回插入的 id;
  3. 使用$_company_id(评级模型)插入评级;

【问题讨论】:

  • 在第二种方法中,你应该删除第二点。
  • 如果我在第二种方法中删除第二点,公司将不会被插入数据库,评级也无法插入......(tks for the edit)
  • 业务逻辑的验证和实现在模型中完成。无论更改源自何处,模型、视图或控制器都需要对其进行验证,并且在您的情况下需要运行业务逻辑。最终目的地是模型,这就是应该完成的地方。

标签: php oop model-view-controller


【解决方案1】:

MVC 的含义以及我们到目前为止所学到的知识。

M(Model)      -> Used to perform database operations.
V(Views)      -> viewing the data in browser.
C(Controller) -> handle model and view.

所以我想说,在你的情况下,请继续使用第二个选项。

如果您有任何验证要完成,请在控制器中进行。

【讨论】:

    猜你喜欢
    • 2010-12-15
    • 2023-03-20
    • 1970-01-01
    • 2012-04-25
    • 2010-12-14
    • 2017-08-08
    • 2010-09-19
    • 1970-01-01
    • 2011-11-15
    相关资源
    最近更新 更多