CodeIgniter库函数调用时出错

时间:2017-01-19 23:32:27

标签: php codeigniter

尝试通过从数据库中将数据提取到视图中来填充下拉列表中的选项。但是我得到了错误:

消息:未定义的属性:CI_Loader :: $ AdminDataHelper

文件名:forms / user.php

致命错误:在第54行的/ci/app/views/includes/forms/user.php中的非对象上调用成员函数get_colleges()

    <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');

2 个答案:

答案 0 :(得分:2)

Carefully read the docs。你不能使用这样的名字。只有文件名的第一个字母大写,然后在引用时使用全小写。

按照示例查看“命名约定”部分:

  
      
  • 文件名必须大写。例如:["0","0"," "]
  •   
  • 类声明必须大写。例如:Myclass.php
  •   
  • 班级名称和文件名必须匹配。
  •   

class MyclassAdmindatahelper.php

答案 1 :(得分:1)

在这种情况下,您应该使用Model而不是Library,但这样可行:

$this->adminDataHelper->get_colleges();

第一个字符必须以小写字母开头。