如何在codeigniter 4中自动加载辅助函数

时间:2017-01-21 08:30:57

标签: php codeigniter codeigniter-4

我刚从官方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这样的辅助函数,请帮助我。

5 个答案:

答案 0 :(得分:3)

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

我知道这是我们很多人使用的功能,但自动加载每一件事都会降低网站性能,因此开发团队可能决定放弃此功能。

来自Codeigniter 4文档的

  

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

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

供将来参考

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

如何加载

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

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

是。由于我玩它,我无法全局加载帮助文件。(2018-2-07)

答案 3 :(得分:0)

第1步

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

结尾

enter image description here

enter image description here

第2步

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

enter image description here

第3步

使用助手

enter image description here

完成

答案 4 :(得分:0)

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

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