我是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;
}}
但我得到一个空白页面。请告诉我我有什么问题。
答案 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