当前位置: 首页 > 面试题库 >

CodeIgniter:控制器内的负载控制器

劳昊明
2023-03-14
问题内容

我有一个home控制器,该控制器的index操作可以显示一组特色产品。但是,产品是通过product包含专有模型和视图的控制器进行管理的。

如何product从控制器中的index操作中访问信息home?实例化product无法运行,因为该类未在运行时加载,并且CodeIgniter也未提供动态加载控制器的方法。将product类放入库文件中实际上也不起作用。

确切地说,我需要product在索引视图中插入产品视图(填充有控制器处理的数据)。我正在运行CodeIgniter 2.0.2。


问题答案:

如果您有兴趣,可以在其中找到一个完善的程序包,可以将其添加到Codeigniter项目中,以处理此问题:

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-
hmvc/

模块化扩展 使CodeIgniter
PHP框架模块化。模块是布置在应用程序模块子目录中的独立组件组,通常是模型,控制器和视图,可以放到其他CodeIgniter应用程序中。

好的,所以最大的变化是现在您将使用模块化结构-但对我来说这是理想的。我已经使用CI大约3年了,如果没有Modular Extensions,我将无法想象。

现在,这是处理直接调用控制器以渲染视图局部的部分:

// Using a Module as a view partial from within a view is as easy as writing:
<?php echo modules::run('module/controller/method', $param1, $params2); ?>

这里的所有都是它的。我通常用它来加载小“部件”,例如:

  • 活动日历
  • 最新新闻文章一览
  • 通讯注册表格
  • 民意调查

通常,我为每个模块构建一个“窗口小部件”控制器,并将其仅用于此目的。

当我开始使用Codeigniter时,您的问题也是我的第一个问题。我希望这可以帮助您,即使它可能比您想要的要多。从那时起,我一直在使用MX,并且没有回头。

确保阅读文档,并在Codeigniter论坛上查看有关此软件包的大量信息。请享用!



 类似资料:
  • 问题内容: 我想从另一个控制器的函数中加载一个控制器,因为我集成到项目中的库我不想将其加载到控制器中,因为我想保持它的清洁和相关性。 我有默认的控制器,所以我可以加载,这样我怎么能从main函数访问控制器,所以我不必将控制器放在url中。 如果我可以从主控制器功能中加载控制器功能,我仍然愿意使用HMVC。 问题答案: 您无法从CI中的控制器加载控制器-除非您使用HMVC或其他工具。 您应该考虑一下

  • GCP为GKE负载平衡器提供了自己的托管入口控制器。我还看到了部署和利用Nginx入口控制器的文档。 https://cloud.google.com/community/tutorials/nginx-ingress-gke 内置入口控制器也在负载均衡器级别处理SSL终止。是否有特定的流量处理能力使Nginx成为GKE更好的入口控制候选者?

  • 是否可以在没有负载均衡器的情况下在库伯内特斯中使用入口控制器功能(在数字海洋中)。 是否有其他机制允许域名映射到Kubernetes服务;例如,如果我在Kubernetes集群上托管两个WordPress站点: == 域名如何在不显式输入端口号的情况下映射到容器端口8080。 感谢任何帮助。

  • 在创建资源类和指定资源格输出式化后, 下一步就是创建控制器操作将资源通过 RESTful APIs 展现给终端用户。 Yii 提供两个控制器基类来简化创建 RESTful 操作的工作:yii\rest\Controller 和 yii\rest\ActiveController, 两个类的差别是后者提供一系列将资源处理成 Active Record 的操作。 因此如果使用 Active Recor

  • 控制器是 MVC 模式中的一部分, 是继承yii\base\Controller类的对象,负责处理请求和生成响应。 具体来说,控制器从应用主体 接管控制后会分析请求数据并传送到模型, 传送模型结果到视图,最后生成输出响应信息。 动作 控制器由 操作 组成,它是执行终端用户请求的最基础的单元, 一个控制器可有一个或多个操作。 如下示例显示包含两个动作view and create 的控制器post:

  • 简介 为了替代把所有的请求处理逻辑都定义在 routes.php 路由文件中,你或许想要使用控制来组织这些行为。控制器可以把相关的请求处理逻辑整合为一个控制器类。控制器类文件被存储在 app/Http/Controllers 目录下。 基础控制器 这里有一个基础控制器的示例。所有 Lumen 的控制器都应该继承 Lumen 安装时内置的默认的控制器基类: <?php namespace App\