我是Codeingiter的新手,我正在建立一个简单的博客。
在Post表中,我有“id,cat_id,title,content”...在类别平板电脑中,我有“id,name”......
要显示帖子,
我使用以下函数从模型内部的POST中获取内容...
function get_posts(){
$query = $this->db->get('post');
return $query->result();
}
然后我加载视图文件以显示帖子...上面的函数只获取CATEGORY ID,但我需要类别名称...所以我需要从视图文件中调用模型...我认为这是不合逻辑的从视图中调用模型...是否有任何解决方案???
请帮帮我......
谢谢
答案 0 :(得分:10)
您可以使用:
$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
答案 1 :(得分:4)
您可以在控制器中调用模型,就像这样
$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);
答案 2 :(得分:2)
试试这个作为你的模特:
function get_posts(){
$this->db->get('post');
$this->db->join('category', 'posts.category_id = category.id');
$query = $this->db->get();
return $query->result();
}
检查连接部分中的表名和列名是否正确。 'category'是您的类别表的名称, posts.category_id是posts表中引用类别id的列,category.id是id列 类别表。
您现在应该可以访问类别名称。
答案 3 :(得分:1)
从控制器调用模型并将数据传递给视图:
控制器:
$data['posts'] = $this->my_model->get_posts();
$this->load->view('my_view', $data);
查看:
foreach ($posts as $post) {
//do something
}
答案 4 :(得分:0)
这是有效的代码......
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();
}