如何在Laravel中发出查询?
我需要在Laravel中为图表创建查询 我需要创建这个json文件: 例如:(30天前) 我在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
$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()
meansorderBy('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();