我是Codeingiter的新手,我正在构建一个简单的博客。
在帖子表中,我有"ID、cat_id、标题、内容"......在类别平板电脑中,我有"ID,姓名"...
要显示帖子,
我使用以下函数从模型内的 POST 中获取内容......
function get_posts(){
$query = $this->db->get('post');
return $query->result();
}
然后我加载视图文件以显示帖子...上面的函数只获取类别 ID,但我需要类别名称...所以我需要从视图文件调用模型...我认为从视图中调用模型是不合逻辑的......有什么解决办法吗???
请帮帮我...
谢谢
你可以使用这个:
$ci =&get_instance();
$ci->load->model(your model);
$ci->(your model)->(your function);
Note: You have to call your model in your controller.Its working fine
您可以像这样简单地调用控制器中的
模型$this->load->model('Model_name');
$this->Model_name->function();
或者,如果您不想直接在视图中调用,可以通过控制器获取数据:
$categoryID = $this->Model_name->function();
$categoryDetails = $this->Model_name->function($categoryID);
$data = [
'categoryID' => $categoryID,
'categoryDetails' => $categoryDetails
];
然后
$this->load->view('view name',$data);
试试这个作为你的模型:
function get_posts(){
$this->db->get('post');
$this->db->join('category', 'posts.category_id = category.id');
$query = $this->db->get();
return $query->result();
}
请检查连接部分中的表和列名称是否正确。"类别"是类别表的名称,posts.category_id帖子表中引用类别 ID 的列,category.id 中的 ID 列类别表。
您现在应该能够访问类别名称。
从控制器调用模型并将数据传递给视图:
控制器:
$data['posts'] = $this->my_model->get_posts();
$this->load->view('my_view', $data);
视图:
foreach ($posts as $post) {
//do something
}
这是有效的代码...
function get_posts(){
$this->db->select('*');
$this->db->from('post');
$this->db->join('category','post.cat_id=category.id');
$query = $this->db->get();
return $query->result();
}