我有一个问题,我无法在Laravel 5.1中修复。
所以我在此代码中输入了“Division by zero
”错误:
public static function GetAvgVisits()
{
$average_visits = DB::table('tracker_sessions')->where('is_robot', '=', 0)
->whereRaw("created_at between '".Carbon::now()->startOfMonth()."' and '".Carbon::now()->endOfMonth()."'")
->count(DB::raw('DISTINCT client_ip')) / (int)Carbon::now()->diff(Carbon::now()->startOfMonth())->format('%a') + 1;
return round($average_visits);
}
我找不到正确的解决方案。有人可以帮助我吗?
答案 0 :(得分:2)
除法在+ 1之前,所以如果+ 1是为了防止零除,那么在+ 1之前和之后加上括号:
public static function GetAvgVisits()
{
$average_visits = DB::table('tracker_sessions')->where('is_robot', '=', 0)
->whereRaw("created_at between '".Carbon::now()->startOfMonth()."' and '".Carbon::now()->endOfMonth()."'")
->count(DB::raw('DISTINCT client_ip')) / ((int)Carbon::now()->diff(Carbon::now()->startOfMonth())->format('%a') + 1);
return round($average_visits);
}
有点难以看到,但我添加了这些:
/ ((int)Carbon :: now() - > diff(Carbon :: now() - > startOfMonth()) - >格式('%a& #39;)+ 1 );