Laravel - php识别多个签到/签出出席

Posted

技术标签:

【中文标题】Laravel - php识别多个签到/签出出席【英文标题】:Laravel - php Identifying multiple check in / check out in attendance 【发布时间】:2019-07-31 03:52:18 【问题描述】:

我们正在开发一个基于 Laravel 框架的简单考勤系统。我们是 Laravel 框架的新手。 我们使用 Laravel 的基本认证系统。用户可以使用系统签入/签出。这样做的时候,用户应该给自己拍照,我们也会从浏览器中获取位置信息。

对于出勤,我们有以下架构: id(主键)(int) userid (int) (用户表id的外键) 状态(布尔值)( 0 - out / 1 - in) 出席日期时间(日期时间) gpslat(浮点数) gpslon(浮点数) 照片网址(varchar)

现在我们希望避免用户在几分钟内(例如 10 分钟内)签入/签出。

此外,我们希望避免同一用户一次多次入住或多次退房。

在 Laravel 控制器中可以做到这一点吗?

this 会为我们的问题提供任何解决方案吗?

【问题讨论】:

您能举一些关于多次签入、签出及其用例的例子吗? 例如,用户可能在上午 9 点签入。系统应将下一个视为签出,只有在 x 分钟(例如 30 分钟)后才应考虑签出。此外,在一天之内,还需要注意同一用户“退房”和“入住”午餐(抱歉英语不好) 【参考方案1】:

首先找出最后检查的详细信息

select max(time(attendancedatetime)) as last_checked_time
From<TableName>
WHERE userid=<USERID> and DATE(attendancedatetime)=<Current Date>

之后,在 Laravel 中,将返回的 last_checked_time 与当前时间进行比较。如果少于 30 分钟,则返回 false,否则运行您的插入语句!

【讨论】:

以上是关于Laravel - php识别多个签到/签出出席的主要内容,如果未能解决你的问题,请参考以下文章

markdown Laravel出席

Laravel Echo - 允许访客连接到出席频道

laravel 实现每日签到及奖励功能

MySQL:内部连接时重复行

无法识别 PHP 工匠

Python人脸识别签到考勤系统