【发布时间】:2020-04-27 19:33:08
【问题描述】:
我正在从我的 Animals 表中获取数据,该表与 Categories 表有关系。我的问题是我需要计算每个类别注册了多少产品。
在 Stackoverflow 上进行搜索时,我开始使用下面的代码返回每个类别的动物数量([Animal,数量])。
$data = DB::table('animals')
->select(
DB::raw('category_id as category'),
DB::raw('count(*) as number'))
->groupBy('category')
->get();
$array[] = ['Name', 'Quantity'];
foreach($data as $key => $value)
{
$array[++$key] = [$value->category, $value->number];
}
$cat = json_encode($array);
dd($cat);
使用“dd”,我看到下面的数据是正确的,但是category_id来了,我不知道如何获取这个id并为那个id放置类别名称。
"[["Category","Quantity"],[1,10],[2,14],[3,30],[4,26],[5,1]]"
示例:[2,14] 这指的是 category_id 2,其名称为:mammal。所以我会在哺乳动物类别中注册 14 种动物。
我希望结果是这样的:
"[["Category","Quantity"],[birds,10],[mammals,14],[reptiles,30],[amphibians ,26],[fish,1]]"
如何处理这个与类别名称相关的 id?
【问题讨论】:
-
DB::raw('category_name as category')? -
@u_mulder,没有。 Animals 表,有一个名为 category_id 的字段,用于存储 Category 表的外键
-
然后你需要加入类别表并从那里获取名称。
标签: php laravel relationship