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识别多个签到/签出出席的主要内容,如果未能解决你的问题,请参考以下文章