尝试通过从数据库中将数据提取到视图中来填充下拉列表中的选项。但是我得到了错误:
消息:未定义的属性: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');
答案 0 :(得分:2)
Carefully read the docs。你不能使用这样的名字。只有文件名的第一个字母大写,然后在引用时使用全小写。
按照示例查看“命名约定”部分:
- 文件名必须大写。例如:
["0","0"," "]
- 类声明必须大写。例如:
Myclass.php
- 班级名称和文件名必须匹配。
class Myclass
和Admindatahelper.php
答案 1 :(得分:1)
在这种情况下,您应该使用Model
而不是Library
,但这样可行:
$this->adminDataHelper->get_colleges();
第一个字符必须以小写字母开头。