检查已存在的记录,但该记录已存在于数据库中,并在dd()时返回错误结果

时间:2018-11-18 06:36:13

标签: php laravel

我遇到一个问题,我想检查当天是否已经签入的记录。如果我们当天检查并且没有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时,但是该记录存在于数据库中。非常感谢,如何在这里改进代码。

1 个答案:

答案 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'
          ]
        );
      }
    }