[英]Filter the record using input MONTH and YEAR but record still return current MONTH and YEAR
我正在通过输入MONTH和YEAR来获取该MONTH和YEAR中的所有出勤情况,以获取所有出勤记录。 但是我遇到一个问题,当我输入MONTH和YEAR时,它返回当前的MONTH和YEAR记录。 这是我下面的功能代码
public function getEmployeeAttendance(){
$month = Carbon::now(request('attendance_date'))->format('m');
$year = Carbon::now(request('attendance_date'))->format('Y');
dump($month);
dump($year);
$emp_attendance = Attendance::whereMonth('attendance_date' , '=' , $month)
->whereYear('attendance_date' , '=' , $year)
->get();
if ($emp_attendance->isEmpty() ) {
return response()->json([
'Error' => 'No record!!!.']);
}
return response()->json(
[
'success' => true,
'data' => $emp_attendance
]
);
}
当我使用dd($ month)和dd($ year)时,它返回当前的MONTH为“ 11”,而YEAR为“ 2018”,但是我在Postman中的输入为MONTH =“ 5”和YEAR =“ 2015”(结果应该返回空记录,但它返回所有当前数据)。
您能否给我一些有关如何改进此代码的建议。 我使用了另一个函数中的相同代码,但是在编写此代码以输入MONTH和YEAR时,该代码未运行。 谢谢!
使用Carbon :: parse代替Carbon :: now
如果您的输入是这样的:2018-11-12(Ymd)
$month = Carbon::createFromFormat('Y-m-d', request('attendance_date'))->format('m');
$year = Carbon::createFromFormat('Y-m-d', request('attendance_date'))->format('Y');
dump($month);
dump($year);
$emp_attendance = Attendance::whereMonth('attendance_date' , '=' , $month)
->whereYear('attendance_date' , '=' , $year)
->get();
如果您的输入是这样的:2018-11-12 10:10:59(Ymd H:i:s)
$month = Carbon::createFromFormat('Y-m-d H:i:s', request('attendance_date'))->format('m');
$year = Carbon::createFromFormat('Y-m-d H:i:s', request('attendance_date'))->format('Y');
dump($month);
dump($year);
$emp_attendance = Attendance::whereMonth('attendance_date' , '=' , $month)
->whereYear('attendance_date' , '=' , $year)
->get();
有关更多信息: https : //carbon.nesbot.com/docs/
如果您的输入是这样的:
1. Input box-1 >> 10(month)
2. Input box-2 >> 2018(year)
/*
# No need those section.
$month = Carbon::createFromFormat('Y-m-d H:i:s', request('attendance_date'))->format('m');
$year = Carbon::createFromFormat('Y-m-d H:i:s', request('attendance_date'))->format('Y');
dump($month);
dump($year);
# END
*/
$emp_attendance = Attendance::whereRaw("month(attendance_date) = '".request('attendance_month')."'")
->whereRaw("year(attendance_date) = '".request('attendance_year')."'")
->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.