【问题标题】:How to autoload helper functions in codeigniter 4如何在 codeigniter 4 中自动加载辅助函数
【发布时间】:2017-06-06 05:53:59
【问题描述】:

我刚刚从他们的官方 GitHub 下载了 CodeIgniter 4。它们与 CodeIgniter 3 相比发生了很大变化。我想在视图中使用 base_url() 函数,为此,您需要加载 URL 帮助程序,并且在 CodeIgniter 3 中我将它自动加载到 config/autoload.php 文件中。但是现在他们已经完全改变了 CodeIgniter 4 中config/autoload.php 文件的结构,这让我很困惑。

您仍然可以在 CodeIgniter 4 的视图中使用 base_url() 函数,方法是在控制器 helper('url'); 的构造函数中使用以下代码

如果使用 CodeIgnter 4 的人知道如何通过修改 config/autoload.php 文件来自动加载 url 等辅助函数,请帮助我。

【问题讨论】:

  • 使用 CI 4 太早了
  • @AbdullaNilam 是的,我知道,先生。我只是在尝试即将发布的版本以了解它的新功能,而不是因为他们不推荐 Cl 4,所以在上面做任何项目。由于 Cl 4 尚未正式发布,我没有从 3 个派对网站获得任何帮助。跨度>
  • 只是我不得不说等待它。 :)
  • @AbdullaNilam ok 先生..

标签: php codeigniter codeigniter-4


【解决方案1】:

CodeIgnter 4 目前处于开发阶段,因此仍有许多功能不可用。答案是您不能在 codeigniter 4 的 autoload.php 文件中自动加载帮助程序或库。

我知道这是我们许多人使用的功能,但自动加载所有内容会降低网站性能,因此开发团队可能决定放弃此功能。

来自 Codeigniter 4 文档:

您可以在控制器构造函数中加载帮助器,以便它们在任何函数中自动可用,或者您可以在需要它的特定函数中加载帮助器。

https://bcit-ci.github.io/CodeIgniter4/general/helpers.html

【讨论】:

    【解决方案2】:

    供日后参考

    由于autoload.php 中没有自动加载,您必须自己加载所有帮助文件。与 CodeIgniter 3 中的全局负载不同。

    如何加载

    public function FunctionName()
    {
        helper(['form', 'validation']); # before retun to view.
        #rest of your code
    }
    

    我们是否需要将其加载到每个方法中?

    是的。由于我玩它,我无法在全球范围内加载帮助文件。(2018-2-07)

    【讨论】:

    • 现在我们可以通过 BaseController.php 全局加载助手
    【解决方案3】:

    将您的助手添加到 BaseController.php 文件中的数组中,如下所示:

    protected $helpers = ["form"] // BaseController.php:29;
    

    【讨论】:

    • 如何加载库?
    【解决方案4】:

    第 1 步

    App/Helpers上创建助手。示例:alert_helper.php必须_helper

    结尾

    第 2 步

    在构造函数或方法上加载帮助程序。 helper(['alert']);

    第 3 步

    使用助手

    完成

    【讨论】:

      【解决方案5】:

      只需添加您要加载的助手的名称

      protected $helpers = []

      /app/Controllers/BaseController.php

      CodeIgniter4 会自动加载这些助手。

      例如:

      class BaseController extends Controller
      {
          /**
           * An array of helpers to be loaded automatically upon
           * class instantiation. These helpers will be available
           * to all other controllers that extend BaseController.
           *
           * @var array
           */
          protected $helpers = ['cookie','date']; // <=== this
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-23
        • 1970-01-01
        • 2012-01-07
        • 1970-01-01
        • 2016-11-18
        • 1970-01-01
        相关资源
        最近更新 更多