Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未在codeigniter中扩展库_Php_Codeigniter - Fatal编程技术网

Php 未在codeigniter中扩展库

Php 未在codeigniter中扩展库,php,codeigniter,Php,Codeigniter,因此,我试图扩展输入库(CI 2.1.1),当我调用自定义保存查询函数时,它表示该函数不存在 文件:MY_Input.php,位于applications/libraries文件夹中:_ class MY_Input extends CI_Input { var $CI; function __construct() { parent::__construct(); $this->CI =& get_instance(); } function save_qu

因此,我试图扩展输入库(CI 2.1.1),当我调用自定义保存查询函数时,它表示该函数不存在

文件:MY_Input.php,位于applications/libraries文件夹中:_
class MY_Input extends CI_Input {
 var $CI;

function __construct() {
    parent::__construct();
    $this->CI =& get_instance();
}

function save_query($query_array) {
    $this->CI->db->insert('ci_query', array('query_string' => http_build_query($query_array)));
 }
}
在控制器中,我像这样调用函数

$query_id = $this->input->save_query($query_array);
那么我到底做错了什么,它给了我这个错误:_

Fatal error: Call to undefined method CI_Input::save_query() in ....

我看不出它为什么不起作用,我甚至查看了用户指南,根据它,我想我做得对/

类是一个核心库(CI2.0.0中的新事物)。您必须将您的
MY_Input.php
文件放在
application/core/
下,以使框架获取它


如果有疑问,请在
system/core
system/libraries
下查找原始类,并在
application/
下镜像它,我不知道codeigniter,但我想您需要在某个地方注册您的类作为CI_输入的替换,你不能指望它能神奇地工作。我猜你已经看过“扩展本机库”的文档了——输入类是一个核心类,所以试着看看@Lefters的文档,现在,我把它放在每个页面的application/core文件夹中,上面都写着:致命错误:在C:\Program Files\EasyPHP-5.3.8.0\www\codeigniter tests\system\core\codeigniter.php中找不到类“CI\u Controller”233@Maerlyn,codeigniter会变魔术:)@JahanzebKhan很高兴知道,谢谢:)现在它说:致命错误:在C:\Program Files\EasyHP-5.3.8.0\www\codeigniter tests\system\core\codeigniter.php的第233行中找不到类“CI_Controller”,它说在每一页上。。。。当我没有得到_instance()时,它会说调用非成员函数Undefined属性:MY _Input::$db并调用MY _Input.php中的非对象上的成员函数insert(),这可能是因为输入类在控制器实例化甚至加载之前加载。因为您正试图访问输入类构造函数中的控制器实例,所以它无法工作。尝试将get\u instance()调用放入
save\u query()
方法中。感谢您让它工作起来!:顺便说一句,如果我想在许多函数(CI实例)中使用它,我是否必须在每个函数中都使用这一行:(,哦,好吧……无论如何,谢谢!我想我可以编写soma magick
\u get()
在第一次使用时延迟初始化变量的实现,或者如果您可以编写一个普通库,而不是扩展一个没有此加载问题的基类,但有点离题(-: