我开始学习如何使用CodeIgniter,我想使用数据库创建静态页面。
我的观点:
<html>
<head>
<title>{blog_title}</title>
</head>
<body>
<h1>{page_title}</h1>
<p>{page_content}</p>
</body>
</html>
我的控制器:
<?php
class Pages extends CI_Controller {
public function view($page = 'contact') {
$this->load->model('Model_Pages');
$data['data'] = $this->Model_Pages->get_data_page($page);
$this->load->view('template/header');
$this->load->view('pages/' . $page, $data);
$this->load->view('template/footer');
}
}
我的模特:
<?php
class Model_Pages extends CI_Model {
public function get_data_page($slug) {
$this->db->select('blog_title', 'page_title', 'page_content');
$this->db->from('pages');
$this->db->where('slug', $slug);
$q = $this->db->get();
return $q->result();
}
}
为什么它不显示数据库数据?
答案 0 :(得分:1)
而不是result()
使用row()
,因为您只需要/想要一行:
return $q->row();
result()
返回结果数组,即使只有一个。验证你也得到了一个结果是个好主意。
接下来,只需使用$data['data']
$data
$data = $this->Model_Pages->get_data_page($slug);
事实上,如果CI(非常有限)模板解析器不能与对象数据类型一起使用,则可能需要row_array()
:
return $q->row_array();
这应该创建CI的解析器可以使用的键/值数组结构。
答案 1 :(得分:0)
缺少$ slug?
$data['data'] = $this->Model_Pages->get_data_page();
public function get_data_page($slug)