【发布时间】:2012-06-30 11:32:58
【问题描述】:
亲爱的朋友们:这似乎更像是一个概念问题而不是编程问题。我是 MVC 的新手,在理解什么可以调用什么方面存在问题。程序控制的流程。
问题:Controller A --Calls-->Model A--calls-->View A。现在,一旦加载了 View A,它还包含一个用于插入带有 sumbitt 按钮的评论的表单。
一旦 cmets 被插入(并提交),它就会调用 Controller B--calls-->Mocel B. 将数据插入 cmets 表 - 而且它没有要调用的视图。
问题1:如何从模型B调用控制器A(因为模型B没有视图)。可以从 ModelB 加载 ViewA,但这需要重写 Controller a 中已经存在的代码。此外,我希望将评论表单插入到许多页面中,因此我必须手动重新加载所有这些页面(视图)。
问题 2:可以使 cmets 表单(控制器 B 和模型 B)成为控制器 A 和模型 A 的一部分,但是评论表单将不再是可重用的模块,并且需要插入到我的每个页面中喜欢用在里面。
问题3:我是否有一些概念上的错误。这是 MCV 的工作方式吗?
总结:: 有一个由控制器 B 和模式 B 管理的表单(它没有视图,它显示为由控制器 A、模型 A 和视图 A 管理的页面的一部分)模型 B 在完成其工作后需要调用控制器 A(使其可以刷新页面)HOW? 感谢你们勇敢的灵魂提前
【问题讨论】:
-
模型层的结构(是的,在受 MVC 启发的适当架构中,模型不是一个类)不应该对应用程序的其余部分有任何了解。模型不应调用控制器。 永远不会!。我认为你的问题的核心是,当你试图理解 MVC 时,你正在使用 CodeIgniter 作为 MVC 模式应该是什么样子的蓝图。但是 CodeIgniter 的 MVC 实现是完全错误的。
标签: php model-view-controller codeigniter