我正在尝试根据我的排名栏中的内容来获取我拥有的项目数量。因此,如果我有3个项目的排名是高的,那么我希望它显示3,如果我的排名是低的,它有2个项目,我需要它显示2。
但我遇到的问题是,它会计算我所有的项目,所以我得到的计数是5。
以下是我的代码
$items = Item::all();
foreach($items as $item)
{
if($item->rank === 'high')
{
$count = $item->count();
dd($count);
}
}发布于 2020-11-04 18:47:22
您可以使用group by rank并获取count
$Items = Item::select('rank', DB::raw('count(*) as total'))
->groupBy('rank')
->get();发布于 2020-11-04 19:29:49
简单易用
$items = Item::where('rank','high')->get()->count();发布于 2020-11-04 19:55:09
您可以使用filter集合:
$items = Item::all();
$highRank = $items->filter(function ($value, $key) {
return $value->rank == 'high';
});
$highRank->count();有关此集合的更多详细信息,请查看此文档:https://laravel.com/docs/8.x/collections#method-filter
https://stackoverflow.com/questions/64678428
复制相似问题