Попытка заполнить параметры в раскрывающемся списке, извлекая данные из базы данных в представление. Однако я получаю ошибку:Ошибка CodeIgniter при вызове функции библиотеки
сообщение: Не определено свойство: CI_Loader :: $ AdminDataHelper
Имя файла: формы/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');
Я думаю, вам нужно внимательно прочитать документы. Вы не можете использовать такое имя. Только первая буква имени файла имеет заглавные буквы, а затем при обращении к ней используется весь нижний регистр. 'Admindatahelper.php', а затем' $ this-> admindatahelper-> '. Следуйте приведенным ниже примерам и ознакомьтесь с разделом «соглашения об именах»: https://www.codeigniter.com/user_guide/general/creating_libraries.html#naming-conventions – Sparky
Я также не думаю, что вы можете вызвать библиотеку изнутри View , Вам нужно вызвать его из своего контроллера и только отправить данные в свой вид. – Sparky
Вы правы. Проблема заключалась в соглашении об именах. благодаря – jstandshigh