Code Igniter / Zend Server - 模型方法未被调用

时间:2012-03-23 15:51:06

标签: codeigniter model

我正在学习代码点火器框架(版本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');

对我做错了什么的任何想法?

0 个答案:

没有答案