我有一个带有“模型菜单”和“用户”的项目,它们之间具有多对多关系。
在一个站点上,我每个日历周显示过去的菜单,在另一个站点上,我希望每个日历周显示特定用户的订单历史记录。
我使用以下查询获得了菜单历史记录:
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
let rootView = self.viewControllers![self.selectedIndex] as! UINavigationController
rootView.popToRootViewController(animated: false)
}
现在,我想到了针对User的相同查询,但是我收到的错误甚至不在我的陈述中。
public static function archives()
{
return Menu::selectRaw('week(date, 1) as kw, year(date) as year')
->orderByRaw('min(date) asc')
->groupBy('kw', 'year')
->get();
}
SELECT列表的表达式#3不在GROUP BY中
答案 0 :(得分:1)
您的mysql设置为ONLY_FULL_GROUP_BY
选项。
如果启用了ONLY_FULL_GROUP_BY SQL模式(通过 默认),MySQL拒绝选择列表为HAVING的查询 条件或ORDER BY列表指的是以下非聚集列 既不在GROUP BY子句中命名,也不在功能上依赖于 他们
https://dev.mysql.com/doc/refman/8.0/en/group-by-handling.html
但是在laravel中,您可以在config/database.php
连接数组mysql
严格模式下覆盖它
'mysql' => [
...
'strict' => false,
'engine' => null,
],