Codeigniter-如何在扩展原生库的同时使用数据库功能?

标签 codeigniter codeigniter-routing

我想访问扩展库中的数据库函数。

class My_Router extends CI_Router {

    public function __construct()
    {
        parent::__construct();
    }

    function _set_routing()
    {
        .....
        ....
        $query=$this->db->get('custome_routes');
        $custom_routes=$query->result_array();
        ....

    }
 }

我也尝试过以下

 $CI =& get_instance();
    $query=$CI->db->get('custome_routes');
    $custom_routes=$query->result_array();

但是这不起作用。

帮帮我......

提前致谢, 洛根

最佳答案

不幸的是你不能这样做,因为框架的加载顺序,并且路由信息用于决定加载哪个 Controller 类,而 get_instance() 的返回值是该 Controller 实例。

您可以尝试通过 require 调用 system/DB.php 来使用 CI 的内置类,并使用 DB() 函数来获取 db 类的实例。

public function _set_routing(){
    require_once BASEPATH.'database/DB.php';
    $db = DB('default', true); // you can set the database.php config's group, or a full DSN string here
    $custom_routes = $db->get('custome_routes')->result_array();
}

或者您可以在您的子类中创建一个独立于 CI 的数据库连接,对于这个“获取完整表”查询,这应该不难。您应该能够包含 CI 数据库配置文件并毫无问题地使用它的值(注意环境)。

关于Codeigniter-如何在扩展原生库的同时使用数据库功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12122018/

相关文章:

php - 如何将 SEOStats 与 Codeigniter 集成?

php - 未定义的属性 : stdClass codeigniter

php - Codeigniter - uri 路由,跳过一个段

php - 如何使codeigniter动态url搜索引擎友好

php - Codeigniter 分页和搜索问题

javascript - "You did not select a file to upload. "使用ajax上传图片时出现这个错误

php - CodeIgniter 框架 PHP : Set up bootstrap twister after install via composer

php - 如何在 CodeIgniter 中禁用 PHP 错误报告?

php - 正则表达式 - 如何匹配除严格单词之外的所有单词?

php - codeigniter 分页中的 404 错误