使用hooks codeigniter从mysql表中获取数据

时间:2016-01-14 11:20:47

标签: mysql codeigniter hook

我是codeigniter中钩子的新手。我在配置文件中启用了挂钩。

$config['enable_hooks'] = TRUE;

然后在hooks.php中编写了我的钩子,如下面的

$hook['pre_controller'] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => '');

AND具有功能的类如下

class MyClass {

function MyClass() {
    $this->CI = &get_instance();
    require_once(APPPATH . 'config/database.php');
}
function Myfunction() {
    $record = $this->CI->db->SELECT('*')
            ->FROM('currency')
            ->get()
            ->result();
    echo "<pre>";
    print_r($record);
    die;
}}

但我得到一个空白页面。请告诉我我有什么问题。

1 个答案:

答案 0 :(得分:0)

我认为你的主要问题是在这方面。

function MyClass() {
    $this->CI = &get_instance();
    require_once(APPPATH . 'config/database.php');
}

尝试

注意:codeigniter 3版本区分大小写应该是仅在文件名上的首字母大写。

应用程序&gt;钩子&gt; My_class.php

<?php

class My_class {

public function __construct() {
    $this->CI = &get_instance();
    // Auto load database
    // require_once(APPPATH . 'config/database.php');
}


public function my_function() {
    $query = $this->CI->db->get('currency');

    $record = $query->result_array();

    echo "<pre>";
    print_r($record);
    echo "</pre>";

}

}

Config Hook

$hook['pre_controller'] = array(
'class' => 'My_class',
'function' => 'my_function',
'filename' => 'My_class.php',
'filepath' => 'hooks',
);

自动加载数据库更好的选项

$autoload['libraries'] = array('database');

Codeigniter Hooks