我正在尝试为每个控制器和视图实现全局设置。
拥有名为 config 的数据库表,其中包含
config_name | config_value
title | My Website
email | my@example.com
在我的 模型 中,我有查询:
function config()
{
$query = $this->db
->select('*')
->get('config');
return $query->result();
}
在 控制器 中,我以这种方式调用模型数据
$data['cfg'] = $this->config_model->config();
现在,我希望使用
在 视图 中显示某些配置位<title><?php echo $cfg->title; ?></title>
但是我收到错误试图获取非对象的属性
我在 模型 查询中尝试了结果查询选项:
result();
result_array();
但它不起作用。我做错了什么?
答案 0 :(得分:0)
在你的模型中试试这个:
public function config() {
$q = $this->db->get('config')
return $q->result_array();
这在你的控制器中:
$this->load->model("config_model");
$res = $this->config_model->get();
if($res){
$data['result'] = $res;
$this->load->view('Your view here', $data);
} else {
echo "failed";
}
然后你可以在你的视图中这样访问:
$result[0]['title'];
假设您的配置表只有一行。
答案 1 :(得分:0)
好的我已经简化了事情并以这种方式解决了这个问题:
将数据库表格布局更改为1行
title | email | country | city
现在它有效。以前我想要数据库布局不同,但我现在就开始使用它了。
答案 2 :(得分:-1)
可以这样使用
您的型号:
public function get() {
$query = $this->db->get('config');
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$data[$row->item] = $row->val;
}
return $data;
}
return false;
}
在控制器中使用:
$this->load->model("config_model");
$config = $this->config_model->get();
echo $config['title'];
在视图中使用:
$this->load->view('index',$config);
结果:
<p><?=$title?></p>