Попытка заполнить параметры в раскрывающемся списке путем извлечения данных из базы данных в представление. Однако я получаю ошибку:
Сообщение: неопределенное свойство: 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');
Внимательно прочитайте документы. Вы не можете использовать такое имя. Только первая буква имени файла пишется с большой буквы, а затем используйте все строчные буквы при обращении к ней.
Следуйте примерам и посмотрите раздел «Соглашения об именах»:
- Имена файлов должны быть заглавными. Например:
Myclass.php
- Объявления класса должны быть написаны заглавными буквами. Например:
class Myclass
- Имена классов и имена файлов должны совпадать.
Admindatahelper.php
а также $this->admindatahelper
Вы должны использовать Model
в этом случае вместо использования Library
Однако это будет работать:
$this->adminDataHelper->get_colleges();
первый символ должен начинаться со строчной буквы.