【问题标题】:Get an averange of visitors in Laravel获取 Laravel 的平均访问量
【发布时间】:2015-05-23 10:03:26
【问题描述】:

我希望每天平均有访问者。我正在使用 Laravel 4。

我的数据库结构是这样的:

姓名:visitor

现在我尝试使用 Laravel 的 avg() 函数,但找不到合适的解决方案。有人可以帮我解决这个问题吗?

我已经有一个控制器,看起来像这样:

public function index()
    {

        //$select_stats = Visitor::where('visit_date', '>=', Carbon::now()->startOfMonth())->get();

        $begin = date('Y-m-01');
        $end = date('Y-m-t');

        $visits = Tracker::selectRaw('date, count(ip)')->groupBy('date')->whereRaw("date between '$begin' and '$end'")->get();

        //get total visits per month
        $get_visits = Visitor::whereRaw("date between '$begin' and '$end'")->count();

        //get averange visits


        return View::make('admin.home.index')->with('stats', $visits)->with('get_visits', $get_visits)/*->with('get_avg_visits', $get_avg_visits)*/;

    }

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

    基本上,您已经获得了计算平均访问者数量所需的一切,无需额外查询 :) 您只需将访问总数除以当月的天数即可:

    public function index()
    {
        $begin = date('Y-m-01');
        $end = date('Y-m-t');
    
        // ...
    
        //get total visits per month
        $get_visits = Visitor::whereRaw("date between '$begin' and '$end'")->count();
    
        // get average visits
        // transform dates to DateTime objects (we need the number of days between $begin and $end)
        $begin = new \DateTime($begin);
        $end = new \DateTime($end);
        $diff = $end->diff($begin); // creates a DateInterval object
        $days = (int)$diff->format('%a'); // %a  -->  days
    
        $average_visits = $get_visits / $days;
    
        // ...
    }
    

    【讨论】:

      【解决方案2】:

      试试这样-

      $avrage_visit= Visitor::select(DB::raw('avg("date") as date_avg')))->groupBy('date')
        ->get();
      

      参考 - http://laravel.com/docs/4.2/queries

      【讨论】:

      • 我要的是平均值,而不是总数。
      • 现在我得到了这样的输出:` [{"date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg":0}, {"date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg":0},{" date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg" :0},{"date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg":0 },{"date_avg":0},{"date_avg":0},{"date_avg":0},{"date_avg":0}]`
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多