【问题标题】:laravel - group data by DATE(created_at) with paginationlaravel - 按日期(created_at)对数据进行分页
【发布时间】:2015-06-23 15:05:01
【问题描述】:

我想显示按日期分组的照片。它可以工作,但只有两个查询并且没有分页。有没有办法只用一个查询,用 laravel paginate() ? 我需要最后 5 天(只有那些有图片的),然后每页总是 5 天。

问题是,我想对日子进行分页,而不是对图片进行分页。

    $days = Pic::select(DB::raw('DATE(created_at) as datum'))
                   ->distinct()
                   ->orderBy('datum','desc')
                   ->take(5)
                   ->get();

$daysarray = array();
foreach($days as $day)
{
   $pics = Pic::where(DB::raw('DATE(created_at)'),'=',$day->datum)
                    ->orderBy('id','desc')
                    ->get();

   $daysarray[$day->datum] = $pics;
}

【问题讨论】:

    标签: pagination group-by laravel laravel-4


    【解决方案1】:

    我相信您必须忍受两个查询才能对日期进行分页。以下应该适用于该位。

    $days = Pic::select(DB::raw('DATE(created_at) as datum'))
        ->distinct()
        ->orderBy('datum','desc')
        ->paginate(5);
    

    【讨论】:

    • 它给了我错误的页数。 (太多)我不得不用 groupBy('datum') 替换 ->distinct()。现在可以了。
    【解决方案2】:
                        $selectboxtwo = DB::table('downloads')
                        ->distinct('date')
                        ->groupBy('date')
                        ->lists('date');
                        dd($selectboxtwo); // making sure if it works. you can see the following array is produced.
    

    array(3) { [0]=> 字符串(10) "2014-03-09" [1]=> 字符串(10) "2015-06-22" [2]=> 字符串(10) " 2015-06-23" }

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-30
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多