如何在 DB::select(query) - Laravel 上使用分页
How to use pagination on DB::select(query) - Laravel
我有一些疑问,我只知道如何在 mysql (phpmyadmin)
上查询
我得到信息如果使用 DB::select
我们不能使用分页,所以我们需要更改为 DB::table(some query)
以使用分页。
但问题是我不知道如何将查询转换为 DB::table(some query)
这是我的代码
$daily = DB::select("
SELECT
employees.employee_name,
COUNT(DISTINCT DATE(attendance.attendance_datetime)) as jumlah,
locations.location_name,
TIME(MIN(attendance.attendance_datetime)) as check_in,
CASE
WHEN ISNULL(TIME(MIN(attendance.attendance_datetime))) THEN attendance_absence.remarks
WHEN TIME(MIN(attendance.attendance_datetime)) > '08:05:00' THEN (SELECT TIMEDIFF('08:05:00', MIN(TIME(attendance_datetime))))
WHEN TIME(MIN(attendance.attendance_datetime)) <= '08:05:00' THEN 'Good'
ELSE 'No Record'
END as detail_telat,
attendance_absence.remarks as remarks
FROM
employees
LEFT JOIN attendance ON employees.employee_name = attendance.attendance_name AND DATE(attendance.attendance_datetime) = '$date'
LEFT JOIN locations ON employees.location_id = locations.id
LEFT JOIN attendance_absence ON attendance_absence.employee_name = employees.employee_name AND attendance_absence.absences_date = '$date'
WHERE locations.location_name LIKE '%'
GROUP BY employees.employee_name
ORDER BY employees.employee_name
")->paginate(3);
请帮助我将查询转换为 eloquent 或查询生成器,或任何建议?
目前,Laravel 无法有效地执行使用 groupBy 语句的分页操作。如果您需要使用带有分页结果集的groupBy,建议您查询数据库并手动创建分页器。
我有一些疑问,我只知道如何在 mysql (phpmyadmin)
上查询我得到信息如果使用 DB::select
我们不能使用分页,所以我们需要更改为 DB::table(some query)
以使用分页。
但问题是我不知道如何将查询转换为 DB::table(some query)
这是我的代码
$daily = DB::select("
SELECT
employees.employee_name,
COUNT(DISTINCT DATE(attendance.attendance_datetime)) as jumlah,
locations.location_name,
TIME(MIN(attendance.attendance_datetime)) as check_in,
CASE
WHEN ISNULL(TIME(MIN(attendance.attendance_datetime))) THEN attendance_absence.remarks
WHEN TIME(MIN(attendance.attendance_datetime)) > '08:05:00' THEN (SELECT TIMEDIFF('08:05:00', MIN(TIME(attendance_datetime))))
WHEN TIME(MIN(attendance.attendance_datetime)) <= '08:05:00' THEN 'Good'
ELSE 'No Record'
END as detail_telat,
attendance_absence.remarks as remarks
FROM
employees
LEFT JOIN attendance ON employees.employee_name = attendance.attendance_name AND DATE(attendance.attendance_datetime) = '$date'
LEFT JOIN locations ON employees.location_id = locations.id
LEFT JOIN attendance_absence ON attendance_absence.employee_name = employees.employee_name AND attendance_absence.absences_date = '$date'
WHERE locations.location_name LIKE '%'
GROUP BY employees.employee_name
ORDER BY employees.employee_name
")->paginate(3);
请帮助我将查询转换为 eloquent 或查询生成器,或任何建议?
目前,Laravel 无法有效地执行使用 groupBy 语句的分页操作。如果您需要使用带有分页结果集的groupBy,建议您查询数据库并手动创建分页器。