【问题标题】:codeigniter load view within view by calling it from another controllercodeigniter 通过从另一个控制器调用它来加载视图中的视图
【发布时间】: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 在 vi​​ew_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


【解决方案1】:

我想如果你只是从 Controller_2 的方法中使用重定向:

  Controller_2{
     function_to_call_a_method_from_controller_1{

        // You have to call the method of Controller 1
        return redirect('controller_1/function_of_controller_1_to_load_view');
     }


  }

【讨论】:

    【解决方案2】:

    在 Code Igniter 中,当您需要在多个地方使用相同的逻辑时,通常会创建一个 helperlibrary

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多