我有一张表:
sysopt|sysval
......................
site_url|http://domain.com/
site_title|My Website
......................
在mysql中我使用:
$query = $db->query("SELECT * FROM sysconfig");
while ($result = $db->fetch_array($query)) {
$settings[$result['sysopt']] = $result['sysval'];
}
但在CI:
class Sysinfo
{
var $info = array();
public function __construct()
{
$CI =& get_instance();
$settings = $CI->db->select("*")
->get("sysconfig");
foreach($settings as $setting) {
$this->info[$setting['sysopt']] = $setting['sysval'];
}
}
在视图中我打电话:
<?php echo $this->Sysinfo->info->site_url; ?>
显示错误。
Message: Undefined property: CI_Loader::$Sysinfo
谢谢你解决任何问题。
答案 0 :(得分:2)
为什么不延长CI_Model
?对我来说,在框架中......只需扩展类,这样你就会更容易
在你的模特中:
class Sysinfo extends CI_Model
{
var $info = array();
public function __construct()
{
//$CI =& get_instance();
$settings = $this->db->select("*")
->get("sysconfig")->result_array(); //Return result as array
foreach($settings as $setting) {
$this->info[$setting['sysopt']] = $setting['sysval'];
}
}
function get_sysinfo_data()
{
return $this->info;
}
}
在您的控制器
中public function __construct()
{
$this->load->model('Sysinfo');
}
function index()
{
$data['arr_result'] = $this->Sysinfo->get_sysinfo_data();
$this->load->view('your_view',$data);
}
在视图中:
foreach($arr_result as $row_array):
var_dump($row_array); // To view your result
endforeach;
如果你想Sysinfo
作为库......那就这样:
您的图书馆名称为Sysinfo.php
:
class Sysinfo
{
var $info = array();
public function __construct()
{
$CI =& get_instance();
$settings = $CI->db->select("*")
->get("sysconfig")->result_array(); //Return result as array
foreach($settings as $setting) {
$this->info[$setting['sysopt']] = $setting['sysval'];
}
}
function get_sysinfo_data()
{
return $this->info;
}
}
在您的控制器中:
public function __construct()
{
$this->load->library('Sysinfo');
}
function index()
{
$data['arr_result'] = $this->Sysinfo->get_sysinfo_data();
$this->load->view('your_view',$data);
}
希望它有所帮助。
答案 1 :(得分:0)
错误正在显示,因为您没有使用CI_Model基类扩展您的类。
尝试将您的课程定义为:
class Sysinfo extends CI_Model{ //your code }
将摆脱此错误消息。