2015-07-17 4 views
1

Я использую codeigniter для проекта веб-сайта. когда я включаю модель, она будет работать до тех пор, пока не будет реализована никакая функция (кроме конструктора).CodeIgniter: пустая страница, когда модель содержит функцию

эта конфигурация работает:

class Xyz_model extends CI_Model { 

    function __construct() { 

    } 
} 

это не делает:

class Xyz_model extends CI_Model { 

    function __construct() { 

    } 

    public function get_xyz() { 
     return [   
      "xy" => ["xy"], 
      "yz" => ["xy"], 
      "zz" => ["xy","zx","zy"] 
     ]; 
    } 
} 

нет даже доступа к базе данных ... и я понятия не имею, почему он не работает.

+1

Можете ли вы лучше определить «не работает»? Существуют ли какие-либо конкретные ошибки? Каков ожидаемый результат? – silencedmessage

+0

Как вы пытаетесь получить доступ к своим методам модели? Предоставьте код контроллера. – CodeGodie

+0

Я получаю пустую страницу после того, как реализован «нерабочий код». без «неработающего кода» страница работает. модель автозагружается в config/autoload.php и к ней обращается «$ this-> xyz_model-> get_xyz();» но это не имеет никакого значения, если есть какой-либо вызов модели в контроллере или нет. он просто не работает, когда какая-либо функция реализована. На данный момент у меня нет вызовов этой модели на любом контроллере. – jerry1809

ответ

0

Вы расширяете класс модели ядра, но конструктор ребенка используется в помещен родителей:

parent::__construct(); 

Добавьте к вашей модели конструктора.

+0

это не имеет никакого значения. такой же результат. – jerry1809

0

использование этого

В модели

class Xyz_model extends CI_Model { 

    function __construct() { 

    } 

    public function get_xyz() { 
     $array = array(
      'xy' => 'xy', 
      'yz' => 'xy', 
      'zz' => array("xy","zx","zy") 
     ); 
     return $array; 
    } 
} 

В контроллере

$new = $this->Xyz_model->get_xyz() 

print_r($new); 

так выход будет

Array ([xy] => xy [yz] => xy [zz] => Array ([0] => xy [1] => zx [2] => zy))