我在Laravel 4
有一个跟踪器,我想知道,我怎样才能得到最多的'从我的桌子。
所以我想要的是拥有最多访客的那一天。
我的表格结构如下:
所以,我的控制器看起来像这样:
public function index()
{
$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 average visits
// transform dates to DateTime objects (we need the number of days between $begin and $end)
$begin = new \DateTime($begin);
$end = new \DateTime('now');
$diff = $end->diff($begin); // creates a DateInterval object
$days = (int)$diff->format('%a'); // %a --> days
$average_visits = $get_visits / $days;
return View::make('admin.home.index')->with('stats', $visits)
->with('get_visits', $get_visits)
->with('average_visits', $average_visits);
}
我想要的输出:
2015年6月18日我们访客最多(542名访客)
例如。
谢谢!
答案 0 :(得分:0)
您可以选择日期 ORDER BY 访问者数量 DESCENDING 和 LIMIT 增加1.这是基本的mysql。如何在laravel中使用它,在documentation。
命令desc:
->orderBy('visits', 'desc')
限制:
->take(1)
我的示例查询基于一个系统,该系统有一个列来计算访问次数(您的结构没有)。所以,让我帮你解决一下你的结构。
您希望按日期拥有它,因此您基本上 GROUP BY 日期:
->groupBy('date')
从此查询中,您希望拥有属于该日期的行数。因此,您使用 COUNT :
->count()
这完全基于您了解有关查询的内容。 这完全取决于查询构建器。