我正在学习代码点火器框架(版本1.7.2,这是我工作的版本)。我正在使用PHP 5.3.9-ZS5.6.0(cli)和Zend Engine v2.3.0。
我无法通过调用模型类从数据库中获取数据。 (基于“Professional CodeIgniter”一书中的代码)。
以下是“welcome.php”
中“索引”方法的相关部分 $data['title'] = "Welcome to Claudia's Kids";
$data['navlist'] = $this->MCats->getCategoriesNav();
$dump = print_r($data['navlist'], true);
log_message('debug',"data['navlist']: " . $dump);
这是被叫方法:
function getCategoriesNav(){
log_message('debug', "in get categories nav");
$data = array();
$this->db->select('id,name,parentid');
$this->db->where('status', 'active');
$this->db->orderby('parentid','asc');
$this->db->orderby('name','asc');
$this->db->groupby('parentid,id');
$Q = $this->db->get('categories');
if ($Q->num_rows() > 0){
foreach ($Q->result() as $row){
if ($row->parentid > 0){
$data[0][$row->parentid]['children'][$row->id] = $row->name;
}else{
$data[0][$row->id]['name'] = $row->name;
}
}
}
$Q->free_result();
log_message('debug', "out get categories nav");
return $data;
}
这是config / database.php
中的连接信息$db['default']['hostname'] = "localhost";
$db['default']['username'] = "myname";
$db['default']['password'] = "mypass";
$db['default']['database'] = "shopping";
并且数据库中加载了测试数据。问题是返回的数组是空的。此外,“getCategoriesNav()”中的调试语句未显示在日志中。这是应该显示的日志输出:
DEBUG - 2012-03-23 12:13:30 --> Model Class Initialized
DEBUG - 2012-03-23 12:13:30 --> Model Class Initialized
DEBUG - 2012-03-23 11:39:00 --> Controller Class Initialized
DEBUG - 2012-03-23 11:39:00 --> making dbcall
DEBUG - 2012-03-23 11:39:00 --> made dbcall
DEBUG - 2012-03-23 11:39:00 --> data['navlist']: Array
(
)
Model类位于system / application / models / mcats.php中。它使用以下声明在autoload.php中自动加载:
$autoload['model'] = array('MProducts', 'MCats');
对我做错了什么的任何想法?