如何在Laravel中发出查询?

如何在Laravel中发出查询?,laravel,laravel-5,Laravel,Laravel 5,我需要在Laravel中为图表创建查询 我需要创建这个json文件: 例如:(30天前) 我在Laravel的代码是: $date = Carbon::today()->subDays(30); $ordersChart = Order::selectRaw('dayname(created_at) day, count(*) count') ->where('created_at', '>=', $date) ->groupBy('d

我需要在Laravel中为图表创建查询

我需要创建这个json文件:

例如:(30天前)

我在Laravel的代码是:

 $date = Carbon::today()->subDays(30);
 $ordersChart = Order::selectRaw('dayname(created_at) day, count(*) count')
        ->where('created_at', '>=', $date)
        ->groupBy('day')
        ->latest()
        ->get();
但返回后,
$ordershart
显示此错误:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'laravel.orders.created_at' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select dayname(created_at) day, count(*) count from `orders` where `created_at` >= 2018-03-20 00:00:00 group by `day` order by `created_at` desc)

如何解决此问题?

您必须使用
->latest('day')
您必须使用:

1-
dayname(创建时间)
=>
day(创建时间)

2-
latest()
=>
latest('day')


在config/database.php文件的mysql块中将strict模式设置为false,然后尝试查询
latest()
means
orderBy('updated_at','desc')
每个组可能有多个updated at,这使得orderBy没有实际意义
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'laravel.orders.created_at' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select dayname(created_at) day, count(*) count from `orders` where `created_at` >= 2018-03-20 00:00:00 group by `day` order by `created_at` desc)
$ordersChart = Order::selectRaw('day(created_at) day, count(*) count')
    ->where('created_at', '>=', $date)
    ->groupBy('day')
    ->latest('day')
    ->get();