计算 codeigniter 3 中关系 table 中的项目

count item from relation table in codeigniter 3

我想在 codeigniter 3 的一个类别中计算每个 post 我现在的模型是:

public function get_category()
{
    $query = $this->db->get('category');
    return $query->result_array();
}


public function getPostByCategory($id)
{       
    $query= $this->db->select("*")
                                ->from('post')
                                ->join('category','category.id = post.category_id')
                                ->where('post.category_id',$id)
                                ->get();

    return $query->result_array();      
}   

我正在尝试在我的控制器中打印出视图中的 "archive" 菜单

$data['category'] = $this->category_model->get_category();

但这会打印出所有类别标题,包括空的。我怎样才能只打印 posts 的类别?

首先您需要获取类别并将其与帖子连接,然后获取所有不为空的类别,然后将其分组以查看唯一值。你可以试试这个:

$this->db->select("category.id, category.title")
        ->from('category')
        ->join('post','category.id = post.category_id')
        ->where(array('post.category_id !=' => NULL, 'category.id !=' => NULL))
        ->group_by(array("category.id", "category.title"))
        ->get();

如果您遇到任何错误,请告诉我。谢谢!