我最近开始使用以下声明收到错误
Model::select(DB::raw('*, SUM(`unrestrict`) as sumUnrestrict, SUM(`quarantine`) as sumQuarantine'))->with(['materialDescription'])->orderBy('mat_no')->groupBy('mat_no')->get();
错误是
Syntax error or access violation: 1055 'wockhardt_indigo.stock_levels.id' isn't in GROUP BY
有什么想法解决? TIA
答案 0 :(得分:1)
您必须明确指定所需的列,这些列必须与组中的列相匹配,例如:
Model::select(DB::raw('mat_no,
SUM(`unrestrict`) as sumUnrestrict,
SUM(`quarantine`) as sumQuarantine'))->
with(['materialDescription'])->
orderBy('mat_no')->
groupBy('mat_no')->get();
答案 1 :(得分:0)
似乎是Laravel框架中的一个问题。 Laravel 5.3附带了SQL中的严格模式,它不能与Eloquent一起工作,在config / database中更改为false.php解决了解决方案并带回了5.2行为。