不好意思想問一下。如果我的語言不整齊,我提前道歉
我有一個帶有 colom -id (pk) -name - 和其他的類別表
我有一個帶有 colom -id (pk) -category_id(fk) 的帖子表
- 和別的
我想計算每個類別的帖子數量以及 laravel 8 中的類別名稱。這是我的 jquery,但仍然錯誤
$categ = DB::table('posts')
->select('category_id', 'categories.id', DB::raw('count(posts.id) as total_product'))
->join('categories', 'posts.category_id', '=', 'categories.id')
->groupBy('posts.category_id')
->get();
有人想幫助我嗎?
uj5u.com熱心網友回復:
如果您愿意使用 Eloquent,答案將非常簡單。
Post 將是 Posts 表的模型
類別將是類別表的模型
根據模型之間的要求,將存在一對一或任何其他關系
假設Category和Post模型之間存在一對多關系這可以通過在Category模型中添加一個函式來實作
public function posts()
{
return $this->hasMany(Post::class);
}
那么你可以使用類似...
Category::withCount('posts')->get()
uj5u.com熱心網友回復:
我假設您在查詢中使用了錯誤的表名,或者可能在問題中輸入了錯誤的表名。
假設您的帖子表名稱是帖子,類別表是類別,那么您的查詢應該是:
$categ = DB::table('posts')
->select('categories.id', "categories.name", DB::raw("count(posts.id) as total_product"))
->join('categories, "posts.category_id', '=', 'categories.id')
->groupBy('posts.category_id')
->get();
請注意 - 確保用您的表格替換表格名稱。
如果您將其用于一次加載,那么您也可以使用模型關系來獲取完整資訊,而無需創建自定義查詢。
https://laravel.com/docs/8.x/eloquent-relationships
你可以有類別來發布關系。假設您有模型類別和帖子,那么您可以在類別模型中具有以下關系。
public function posts(){
return $this->hasMany(Post::class, 'category_id', 'id');
}
然后在您的代碼中,您可以$category->posts用來獲取該類別的帖子集合,并可以$category->posts->count()用來獲取該類別的帖子數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/377402.html
