CodeIgniter Ошибка при вызове библиотечной функции

Попытка заполнить параметры в раскрывающемся списке путем извлечения данных из базы данных в представление. Однако я получаю ошибку:

Сообщение: неопределенное свойство: CI_Loader :: $ AdminDataHelper

Имя файла: forms / user.php

Неустранимая ошибка: вызов функции-члена get_colleges () для необъекта в /ci/app/views/includes/forms/user.php в строке 54

    <select id="college" name="college-selector" >
<?php
foreach ($this->AdminDataHelper->get_colleges() as $colleges)
{
echo "<option value='".$colleges['id']."'>".$colleges['description']."</option>";
}
?>
</select>

Моя библиотека класс: —

class AdminDataHelper {

public function __construct()
{
$this->CI =& get_instance();
$this->CI->load->model('admin_m');
}

public function get_colleges(){
return $this->CI->admin_m->get_colleges();
}

Моя модель: —

class Admin_M extends CI_Model {

function __construct()
{
// Call the Model constructor
parent::__construct();
$this->global_db = $this->load->database('global', TRUE);
}

public function get_colleges()
{
$this->global_db->select('id, description');
$this->global_db->from('College');
$result = $this->global_db->get();
$data=$result->result_array();
return $data;
}

В моем файле autoload.php я добавил библиотеку.

$autoload['libraries'] = array('database', 'form_validation', 'AdminDataHelper');

1

Решение

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

Следуйте примерам и посмотрите раздел «Соглашения об именах»:

  • Имена файлов должны быть заглавными. Например: Myclass.php
  • Объявления класса должны быть написаны заглавными буквами. Например: class Myclass
  • Имена классов и имена файлов должны совпадать.

Admindatahelper.php а также $this->admindatahelper

2

Другие решения

Вы должны использовать Model в этом случае вместо использования LibraryОднако это будет работать:

$this->adminDataHelper->get_colleges();

первый символ должен начинаться со строчной буквы.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector