public function timeIn()
{
$now = $this->freshTimestamp();
return $this->employeeAttendance()->create([
'name' => auth()->user()->name,
'date' => Carbon::now('Asia/Manila')->toDateString(),
'timeIn' => Carbon::now('Asia/Manila')->format('H:i:s'),
]);
}
Time Out
public function timeOut()
{
$now = $this->freshTimestamp();
return $this->employeeAttendance()
->where('date', Carbon::now('Asia/Manila')->toDateString())
->whereNull('timeOut')
->firstOrFail()
->update([
'timeOut' => Carbon::now('Asia/Manila')->format('H:i:s'),
]);
}
المتحكم
public function store(Request $request)
{
$request->user()->timeIn();
return back();
}
public function update(Request $request)
{
$request->user()->timeOut();
return back();
}
السؤال
محمد لارافيل
أقوم بعمل نظام الحضور. أريد حساب إجمالي الساعات من وقت لآخر وعرضها في عمود إجمالي الساعات. لقد جربت هذا الكود ولكن لا يعمل. أنا أفعل هذا في نموذج User
public function total() { $now = $this->freshTimestamp(); return $this->employeeAttendance() ->where('date', Carbon::now('Asia/Manila')->toDateString()) ->whereNull('total') ->firstOrFail() ->update([ 'timeOut' => DB::table('attendance')->where('id')->sum(DB::raw('timeIn - timeOut')), ]); }
Time In
public function timeIn() { $now = $this->freshTimestamp(); return $this->employeeAttendance()->create([ 'name' => auth()->user()->name, 'date' => Carbon::now('Asia/Manila')->toDateString(), 'timeIn' => Carbon::now('Asia/Manila')->format('H:i:s'), ]); }
Time Out
public function timeOut() { $now = $this->freshTimestamp(); return $this->employeeAttendance() ->where('date', Carbon::now('Asia/Manila')->toDateString()) ->whereNull('timeOut') ->firstOrFail() ->update([ 'timeOut' => Carbon::now('Asia/Manila')->format('H:i:s'), ]); }
المتحكم
public function store(Request $request) { $request->user()->timeIn(); return back(); } public function update(Request $request) { $request->user()->timeOut(); return back(); }
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.