用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4778|回复: 1
收起左侧

[已解决] 扩展或替换原始类库时遇到的问题

[复制链接]
发表于 2012-2-16 00:58:55 | 显示全部楼层 |阅读模式
在观看视频教程"CodeIgniter 从零开始第十七天:不用 Query String 实现搜索功能"(http://codeigniter.org.cn/tutorials/watch/from_scratch_search_results_without_query_strings)时,仿做时遇到问题。原代码版本1.72,现在我使用2.1 版,在application/library下建立MY_Input.php,内容
PHP复制代码
 
class MY_Input extends CI_Input {
 
 function save_query($query_array) {
 
  $CI =& get_instance();
 
  $CI->db->insert('ci_query', array('query_string' => http_build_query($query_array)));
 
  return $CI->db->insert_id();
 }
 
 function load_query($query_id) {
 
  $CI =& get_instance();
 
  $rows = $CI->db->get_where('ci_query', array('id' => $query_id))->result();
  if (isset($rows[0])) {
   parse_str($rows[0]->query_string, $_GET);  
  }
 
 }
 
}
复制代码


这样,无需装载,会在装入input类库时,加载自定义的函数。然而事实上不能装载。
在控制器中
PHP复制代码
 
$this->input->load_query($query_id);  
 
复制代码


运行错误如下:
Fatal error: Call to undefined method CI_Input::load_query() in E:\StudyPhp\dev\application\controllers\dic.php on line 17

怎么了?

可是,直接在system/core/input.php中写入那两个函数,就可以正常运行,实现功能。



发表于 2012-2-16 01:15:36 | 显示全部楼层
2.0之后,扩展Input类要在app/core/目录下

本版积分规则