9

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

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

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

4

5 回答 5

6

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

protected $helpers = ["form"] // BaseController.php:29;
于 2020-04-18T15:30:56.110 回答
5

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

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

来自 Codeigniter 4 文档:

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

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

于 2017-02-01T18:49:05.877 回答
2

备查

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

如何加载

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

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

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

于 2018-02-07T09:59:10.477 回答
1

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

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
于 2021-05-08T14:38:03.410 回答
0

步骤1

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

在此处输入图像描述

在此处输入图像描述

第2步

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

在此处输入图像描述

第 3 步

使用助手

在此处输入图像描述

完毕

于 2020-09-22T20:17:55.993 回答