我遇到一个问题,我想检查当天是否已经签入的记录。如果我们当天检查并且没有scan_in_time,则应返回false,否则返回已经登记的值。
这是我在编写时使用考勤日期和scan_in_time检查check_in考勤是否存在的代码。
public function checkinExists(){
$check_attendance = Attendance::whereDay('attendance_date', request('day'))
->whereMonth('attendance_date', request('moth'))
->whereYear('attendance_date', request('year'))
->whereNotNull('scan_in_time')
->where('user_id', auth()->user()->user_id)
->exists();
dd($check_attendance);
if(!$check_attendance){
return response()->json(
[
'message' => 'No checkin'
]
);
}else{
return response()->json(
[
'message' => 'Checked in'
]
);
}
}
当我使用dd($ check_attendance)和POSTMAN返回false时,但是该记录存在于数据库中。非常感谢,如何在这里改进代码。
答案 0 :(得分:0)
您的查询应与此类似,并确保日期格式正确。检查您是否正确传递了请求对象。我希望这会成功
public function checkinExists(Request $request){
$check_attendance = Attendance::whereDay('attendance_date','>=',
request->day)
->whereMonth('attendance_date','>=', request->month)
->whereYear('attendance_date','>=', request->year)
->whereNotNull('scan_in_time')
->where('user_id', auth()->user()->user_id)
->exists();
dd($check_attendance);
if(!$check_attendance){
return response()->json(
[
'message' => 'No checkin'
]
);
}else{
return response()->json(
[
'message' => 'Checked in'
]
);
}
}