首页 文章

Laravel Query构建器 - 查询不起作用但在SQL控制台中工作

提问于
浏览
2

我变得非常困惑我试图通过laravels查询构建器运行查询,该查询构建器应该可以工作,但它会抛出奇怪的错误 .

我正在尝试计算提示表中的记录,其中状态为“赢”在日期范围之间,然后加入user_id上的users表以检索用户用户名 .

这是我的查询构建器

$topfiveTipsters = DB::table('tips')
      ->select(DB::raw('count(status) as wincount, users.name'))
      ->join('users', 'users.id', '=', 'tips.user_id')
      ->whereBetween('tips.created_at',[$start,$end])
      ->where('status','Won')
      ->groupBy('users.id')
      ->orderBy('wincount', 'desc')
      ->get();

然而它正在抛出错误

QLSTATE [42000]:语法错误或访问冲突:1055'digthetip.users.name'不在GROUP BY中(SQL:select count(status)as wincount,users.name from tips inner join users on users.id = tips.user_id其中tips.created_at在2016-11-01 00:00:00和2016-11-02 10:39:02之间,status =由users.id按wincount desc命令组合

但如果我运行确切的查询错误已输出到PHPMyAdmin内的SQL控制台,查询运行正常并返回我需要的结果 .

我错过了什么吗?我对Laravel来说相对比较新,而且我大肆混淆它是如何抛出错误的 .

1 回答

  • 3

    好的,事实证明你可以在/app/database.php中转换SQL严格模式,这将防止错误发生 .

    'strict'=> false,

相关问题