在Laravel 5.1中除以零

时间:2016-06-01 16:59:09

标签: php laravel

我有一个问题,我无法在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);
    }

我找不到正确的解决方案。有人可以帮助我吗?

1 个答案:

答案 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 ;