【发布时间】:2012-06-29 09:03:36
【问题描述】:
这个问题在其他人看来是一样的,但实际上是不同的。
情况是这样的: 我有 2 个控制器,即 controller_1 和 controller_2。 我有几个视图,但出于这种情况的目的,我将给出 view_1 和 view_2。
在调用controller_2 的索引时,它会在view_2 中渲染一个菜单。在这个菜单中,一个特定的链接应该在 view_2 的 div 中加载 view_1。
问题是,我已经在 controller_1 中创建了一个函数,它将使用模型所需的所有数据加载 view_1。当然,我可以在 controller_2 中再次加载模型,但问题是,我将重复在 controller_1 的一个函数中找到的代码。顺便说一句,controller_1 的行为就像一个 crud,而 controller_2 就像一个模块的控制器,它涉及多个 crud 的菜单。
那我该怎么做呢?如何通过调用 controller_1 在 view_2 中调用 view_1 来加载 view_1 并使用 controller_2 将其插入到 view_2 中?
编辑:如果您熟悉 Tiles of struts(旧版本),这就是我在这里尝试完成的类似事情。
【问题讨论】:
-
您的问题到底是什么?你想从另一个控制器访问一个控制器的方法吗?
-
@Robert 抱歉,我忘记了我的问题。我已经编辑过了。
-
如何将准备 view_2 的代码放在帮助程序或库中,然后您可以将其加载到 controller_1 和 controller_2 中?
-
你通常不会在 MVC 结构中这样做。也许这不是您要寻找的答案,但请看一下您如何构建应用程序,因为您通常不需要这样做。尝试将内容放在其他地方并将其加载到两个控制器中。如果你真的需要,你可以使用 AJAX 从另一个控制器加载数据。
-
@danneth @ Robert 谢谢大家。这让我很清楚该怎么做。我想我将制作一个自定义助手并将其加载到 controller_2 中。这样我就可以用ajax来调用这个函数了,这个函数只涉及一个控制器。
标签: php codeigniter