【问题标题】:Paginate the daily stats data in Laravel在 Laravel 中对每日统计数据进行分页
【发布时间】:2017-09-13 01:05:37
【问题描述】:

我在Laravel 中有一个RAW 查询

$sales = DB::table('orders')
             ->select(DB::raw('DATE(created_at) as date'), 
                      DB::raw('SUM(total_price) AS total_price'), 
                      'created_at')
             ->groupBy('date')
             ->orderBy('date', 'DESC')
             ->paginate(20);

我正在尝试对结果集进行分页,但它显示以下错误;

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'date' in 'group statement' 
(SQL: select count(*) as aggregate from `orders` group by `date`)

上述查询工作正常,并在我替换时返回完整的结果集;

paginate(20)get()

发生了什么事?

【问题讨论】:

  • 请使用 'dat` 作为列,或在列名前后加上date 尝试使其工作。 date 是 MySQL 中的关键字

标签: php mysql pagination laravel-5.2


【解决方案1】:
$sales = DB::table('orders')
             ->select(DB::raw('DATE(created_at) as `date`'), 
                      DB::raw('SUM(total_price) AS total_price'), 
                      'created_at')
             ->groupBy('date')
             ->orderBy('date', 'DESC')
             ->paginate(20);

试试这个代码,它应该可以工作。

【讨论】:

  • @baig772 您是否可以检查它为此代码生成的原始查询。
  • 是的,我可以在没有paginate() 的情况下进行检查,它给了我这个"select DATE(created_at) as dat, SUM(total_price) AS total_price, created_at` from orders group by dat order by dat desc"`跨度>
  • 请在您的回答中添加一些解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2018-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多