创建一个表:
user_status_in (id, user_id, date, time,status)
确保有一个唯一的user_id索引,日期,状态(所以数据库不允许用户在同一天登记或登出两次。
您的用户模型:
public function checkIn() {
return $this->hasMany(UserCheckIn::class,"user_check_in");
}
public function checkedInToday() { //True if checked in today
return $this->checkIn()
->where("date","=",date_format(date_create(), "Y-m-d")) //today
->where("status","=",1)
->count() > 0;
}
UserCheckIn.php
class UserCheckIn extends Model {
public function user() {
return $this->belongsTo(User::class);
}
}
在你看来,你可以这样做:
@if (auth()->user()->checkedInToday())
//Check out button
@else
//Check in button
@endif
您可以通过检查用户做类似:
$c = new UserCheckIn();
$c->user_id = auth()->user()->id;
$c->date = date_format(date_create(), "Y-m-d"));
$c->time = date_format(date_create(), "H-i-s"));
$c->status = 1;
$c->save();
或者状态为0时退出。
这种方式,您也可以保留签入的历史记录/奏
是,将其存储在数据库中。请添加更多信息,这是什么检查/结帐?它是用户的登录状态吗? – Jerodev