Tei*_*ion 5 php oop model-view-controller
我对MVC的理解如下(包括它可怕的错误,我以后是新的)
我正在使用CodeIgniter,但我猜测它不仅限于那个,甚至可能仅限于PHP框架.
我在哪里放置全球课程?
我可能有一个产品模型,然后我运行一个查询,从数据库中收集20个产品.我现在制作20个模型还是应该有一个单独的类,如果是后者,我在哪里放这个类(其他控制器也需要使用它)
在讨论如何处理产品时,“模型”这个词是错误的:每个产品都是一个值对象 (VO)(或数据传输对象/DTO,无论哪种更适合您的说法)。值对象通常具有与表包含的相同字段。在您的情况下,ProductVO 应该具有 Products 表中的字段。
模型是一个数据访问对象 (DAO),具有如下方法
findByPk --> returns a single value object
findAll --> returns a collection of value objects (0-n)
etc.
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您将拥有一个具有类似于上述方法的 ProductDAO。然后,该 ProductDAO 将返回 ProductVO 及其集合。
数据访问对象还可以返回业务对象 (BO),其中可能包含多个 VO 和特定于业务案例的其他方法。
附录:在您的控制器中,您调用 ProductDAO 来查找您想要的产品。返回的 ProductVO 然后被传递到视图(作为 Java 中的请求属性)。然后视图循环/显示来自productVO 的数据。