4

我是 Codeingiter 的新手,我正在构建一个简单的博客。

在 Post 表中,我有“id,cat_id,title,content”......在类别平板电脑中,我有“id,name”......

要显示帖子,

我使用以下函数从模型内部的 POST 中获取内容...

function get_posts(){
        $query = $this->db->get('post');
        return $query->result();
}

然后我加载视图文件以显示帖子...上面的函数只获取类别 ID,但我需要类别名称...所以我需要从视图文件中调用模型...我认为调用模型是不合逻辑的从视图...有什么解决办法???

请帮我...

谢谢

4

5 回答 5

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
于 2014-03-12T06:33:26.593 回答
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);
于 2012-06-15T07:24:43.907 回答
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 是您的帖子表中引用类别 id 的列,category.id 是类别表中的 id 列。

您现在应该可以访问类别名称了。

于 2012-06-15T08:07:05.343 回答
1

从控制器调用模型并将数据传递给视图:

控制器:

$data['posts'] = $this->my_model->get_posts();
$this->load->view('my_view', $data);

看法:

foreach ($posts as $post) {
   //do something
}
于 2012-06-15T07:26:32.887 回答
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();
    }
于 2012-06-15T10:42:54.147 回答