【发布时间】:2021-12-01 09:18:23
【问题描述】:
我想按名称按表分组并选择名称和日期,对于具有相同值的名称具有不同的日期值,我尝试了这个但不起作用:
public function period(Request $req)
{
$absences = Absence::whereBetween('date', [$req->from, $req->to])->get();
$daily = $absences->select('name ','date', 'COUNT(date) as counts');
$arr['absences'] = $absences;
$arr['daily'] = $daily;
$arr['from'] = $req->from;
$arr['to'] = $req->to;
return $arr;
return view('period',$arr,);
}
我收到错误:Method Illuminate\Database\Eloquent\Collection::select does not exist.
当我使用这个时:
public function period(Request $req)
{
$absences = Absence::selectraw('name , date')->whereBetween('date', [$req->from, $req->to])->groupBy('name')->get();
$arr['absences'] = $absences;
$arr['from'] = $req->from;
$arr['to'] = $req->to;
//return $arr;
return view('period',$arr,);
}
我明白了:
SQLSTATE[42000]:语法错误或访问冲突:1055 SELECT 列表的表达式 #2 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列“absences.absences.date”;这与 sql_mode=only_full_group_by 不兼容(SQL: select name , date from
absenceswheredatebetween 2021-10-02 and 2021-10-12 group byname)
【问题讨论】: