Code Igniter / Zend Server - метод модели не вызывается - PullRequest
0 голосов
/ 23 марта 2012

Я изучаю фреймворк воспламенителя кода (версия 1.7.2, которая используется в той версии, где я работаю). Я использую PHP 5.3.9-ZS5.6.0 (cli) и Zend Engine v2.3.0.

У меня проблемы с получением данных из базы данных при вызове модельного класса. (на основе кода из книги «Профессиональный CodeIgniter»).

Вот соответствующая часть метода «index» в «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');

Есть идеи, что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...