在 Codeigniter 中调用扩展辅助函数时未定义的函数

Posted

技术标签:

【中文标题】在 Codeigniter 中调用扩展辅助函数时未定义的函数【英文标题】:Undefined function when calling extended helper function in Codeigniter 【发布时间】:2019-11-25 16:32:50 【问题描述】:

我在application/helpers/ 中创建MY_form_helper.php,扩展form_helper.php。函数是这样的:

function alert($message,$type = 'success')
    $data = array(
        'type' => $type,
        'text' => $message
    );
    return json_encode($data);

在我的控制器中,我这样调用函数:

$this->load->helper(array('form', 'url'));
echo alert('Wrong email or password');

但它给了我一个错误

Message: Call to undefined function alert()

那么我在这里遗漏了什么或做错了什么?

【问题讨论】:

【参考方案1】:

它应该可以正常工作,因为如果您将其存储在正确的目录中,即 application/helpers 名称为 MY_form_helper.php 现在您应该添加核心助手的扩展:

$this->load->helper('form');
var_dump(alert('Wrong email or password'));

测试

【讨论】:

【参考方案2】:

将您的 MY_form_helper.php 助手放置到 application/helper

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

   function alert($message,$type = 'success')
      $data = array(
        'type' => $type,
        'text' => $message
   );
   return json_encode($data);

并在您的控制器中放置此代码。

public function sample()

    $this->load->helper('MY_form_helper'); //load your helper

    echo alert('Wrong email or password'); //call your function

让我知道结果。

【讨论】:

我做了,但仍然出错。现在它说无法加载请求的文件:helpers/my_form_helper.php 您是否将 MY_form_helper.php 助手保存到 application/helper 中? 应该是应用程序/助手吧?是的,我已经放在那个文件夹里了。 没错,然后你加载了这个? $this->load->helper('MY_form_helper');到你的控制器? 是的,我已经尝试过了,但它给了我其他错误,说它没有找到。因为如果我这样做,它会在 system/helpers/ 上查看我的文件,对吗?至少是错误所说的。

以上是关于在 Codeigniter 中调用扩展辅助函数时未定义的函数的主要内容,如果未能解决你的问题,请参考以下文章

024.CI4框架CodeIgniter辅助函数类之:URL辅助函数

调试时未调用推送通知扩展

willBeginSending 应用程序在打开 EverNote 或任何其他扩展时未调用

ExtJs,提交表单时未调用自定义TextField的getValue()函数

从codeigniter中的数据库查询向视图添加动态数据时未定义的变量[重复]

019.CI4框架CodeIgniter辅助函数类之:Array数组查询