我刚从官方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这样的辅助函数,请帮助我。
答案 0 :(得分:3)
CodeIgnter 4目前正处于开发阶段,因此仍然无法使用许多功能。答案是您无法在codeigniter 4中的autoload.php文件中自动加载帮助程序或库。
我知道这是我们很多人使用的功能,但自动加载每一件事都会降低网站性能,因此开发团队可能决定放弃此功能。
来自Codeigniter 4文档的:
您可以在控制器构造函数中加载帮助程序,以便它们在任何函数中自动可用,或者您可以在需要它的特定函数中加载帮助程序。
答案 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
结尾第2步
在构造函数或方法上加载帮助程序。 helper(['alert']);
第3步
使用助手
完成
答案 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