[英]CodeIgniter 4, helper function not working
我试图自动加载帮助程序 function。 我在 autoload.php 中添加了帮助文件,并在视图文件中调用了 function,但它不起作用。
应用程序/配置/自动加载.php
$psr4 = ['Config' => APPPATH . 'Config',
APP_NAMESPACE => APPPATH,
'App' => APPPATH,
'Helpers' => APPPATH . 'Helpers/MY_helper'];
app/Helpers/My_helper.php
<?php if(!defined('BASEPATH')) exit('No direct script access allowed');
function chicking_helper(){
return 'welcome to helper function';
}
应用程序/视图/welcome_message.php
<h1>Welcome to CodeIgniter </h1>
<p class="version">version <?= CodeIgniter\CodeIgniter::CI_VERSION ?></p>
<?php
chicking_helper();
?>
应用程序/控制器/BaseController
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 = ['url', 'file'];
在您的 BaseController - $helpers 数组中,使用您的帮助文件名添加一个元素。 假设你有它app/Helpers/My_helper.php
,然后你像这样编辑你的 BaseController :
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 = ['url', 'file', 'my_helper'];
您不需要在您的场景中触摸自动加载 class。 它用于 map 项目中所有不同的命名空间。
app/Helpers/My_helper.php
if(!function_exists('chicking_helper')) {
function chicking_helper(){
return 'welcome to helper function';
}
}
Codeigniter 4 文档 助手
我这样解决了:在您的app/Config/autoload.php自动加载数组可选包括辅助源。 请注意,每个_helper都是每个辅助文件鬃毛的后缀。 所以在app/Controllers/BaseController只需添加您的前缀助手名称:例如: chicking_helper.php
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 = ['form', 'html', 'chicking',];
.....
}
在 BaseController.php 中声明新助手时,不需要添加单词“_helper”。 例如:
class BaseController extends Controller{
protected $helpers = ['url', 'file', 'my'];
将在 app\Helpers 中加载一个名为“my_helper.php”的文件。
似乎您在autload.php
中错误地声明了您的帮助功能。
它必须声明如下:
$autoload['helper'] = array('file', 'url');
然后在您的 controller 或 model 中,只需调用帮助程序 function 例如default_method($parameter)
。 default_method 是您的助手 function 名称。
还要确保 PHP 文件具有正确的命名。 我也遇到了这个问题,因为我的自定义帮助文件在 app/Helpers 下被命名为“CustomHelper.php”。 将其重命名为“Custom_helper.php”后,可以通过 BaseController 加载它,如前所述:
class BaseController extends Controller{
//...
protected $helpers = ['form', 'url','custom'];
//...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.