Php Laravel group by如果没有行,则返回零
我列出了过去16天的浏览次数。我想写0;如果在日期没有行:Php Laravel group by如果没有行,则返回零,php,laravel,Php,Laravel,我列出了过去16天的浏览次数。我想写0;如果在日期没有行: $digital_case_daily_views = DB::table('digital_case_views') ->select(DB::raw('count(*) as numOfDigitalCaseViews'))->groupBy('created_at') ->orderBy('created_at', 'desc')->limit(16)->get(); 拉威尔5.6 它返回的结果如下
$digital_case_daily_views = DB::table('digital_case_views')
->select(DB::raw('count(*) as numOfDigitalCaseViews'))->groupBy('created_at')
->orderBy('created_at', 'desc')->limit(16)->get();
拉威尔5.6
它返回的结果如下:
"digital_case_daily_views": [
{
"numOfDigitalCaseViews": 162
},
{
"numOfDigitalCaseViews": 458
},
{
"numOfDigitalCaseViews": 287
},
{
"numOfDigitalCaseViews": 1
},
{
"numOfDigitalCaseViews": 1
},
{
"numOfDigitalCaseViews": 1
}
从数据库中获取的行数不能超过可用的行数,如果要在剩余的几天内使用0,则必须将它们添加到数组中,我为您编写了一个函数,可以帮助您完成以下操作:
class Foo {
static public function addRemainingDays(array $arr, int $amount) {
if(count($arr) === $amount) {
return $arr;
}
for($i = 0; i > $amount - count($arr); i++) {
array_push($arr, (object)["numOfDigitalCaseViews" => 0]);
}
return $arr
}
}
主要的问题是当你没有某一天的记录时,你就没有那一天的记录,所以你不能设置为零directly@SagarGautam我知道了,我返回参数处创建的_和count。现在一切都好了。我将在后端进程中设置零。