Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从雄辩的收藏中获得GroupBy count?_Php_Collections_Laravel - Fatal编程技术网

Php 如何从雄辩的收藏中获得GroupBy count?

Php 如何从雄辩的收藏中获得GroupBy count?,php,collections,laravel,Php,Collections,Laravel,为了实现这一点,我一直在四处寻找,但还没有找到解决方案 我必须获得会话详细信息和计数。我正在使用下面的代码,但仍停留在如何在按日期对集合进行分组后获取计数上 代码如下: $sessions = Session::where('api_token','1') ->orderBy('created_at', 'DESC') ->get(array(DB::raw('date(created_at) as v_date'))); //To ge

为了实现这一点,我一直在四处寻找,但还没有找到解决方案

我必须获得会话详细信息和计数。我正在使用下面的代码,但仍停留在如何在按日期对集合进行分组后获取计数上

代码如下:

$sessions = Session::where('api_token','1')
             ->orderBy('created_at', 'DESC')
         ->get(array(DB::raw('date(created_at) as v_date')));

//To get the total session counts -
$total_sessions = $sessions->count();

//To get the sessions that happened today -
$today_sessions = $sessions->filter(function($today)
{ if ($today->v_date == date("Y-m-d")) { return true; }})->count();
现在,我使用groupBy()对集合进行分组

但是如何从该集合中检索会话计数和日期

预期产出:

2014-02-01 10
2014-02-02 11
2014-02-04 15
2014-02-06 70
2014-02-07 90

2014-02-08 100

如果您只是想获得每天的会话数,那么就不需要使用Eloquent,您可以使用query builder

$sessions = DB::table('sessions')
            ->select(DB::raw('date(created_at) AS v_date, count(*) AS count'))
            ->where('api_token', '1')
            ->orderBy('v_date', 'desc')
            ->groupBy('v_date')
            ->get();
这将返回表示每行的对象数组:

array (size=1)
    0 => 
      object(stdClass)[346]
        public 'v_date' => string '2014-03-09' (length=10)
        public 'count' => int 2
    1 =>
      object(stdClass)[349]
        public 'v_date' => string '2014-03-08' (length=10)
        public 'count' => int 6

我被你的问题弄糊涂了,真的不明白,你是说
$sessions->groupBy('v_date')->count()?你能重新表述你的问题吗?@狼人TheAlpha-我有桌上会话。我在集合$sessions中检索api_令牌的所有数据。现在我需要从中得到三个值。1-总会话数。2-计算今天发生的会话数。3-按日期计算会话数。现在和问题一样,我能得到1和2。如何从集合中获取日期计数?谢谢@rmclood我想从集合中获得三件事。1-总会话数。2-计算今天发生的会话数。3-按日期计算会话数。
array (size=1)
    0 => 
      object(stdClass)[346]
        public 'v_date' => string '2014-03-09' (length=10)
        public 'count' => int 2
    1 =>
      object(stdClass)[349]
        public 'v_date' => string '2014-03-08' (length=10)
        public 'count' => int 6