1. 项目背景与需求分析
在高校日常管理中,学生请假管理一直是个让人头疼的问题。西安工商学院作为一所拥有上万名学生的综合性院校,传统的纸质请假条和Excel表格管理方式已经明显跟不上需求。教务处的王老师跟我吐槽说,光是整理上周的请假记录就花了整整两天时间,还经常出现信息遗漏、审批流程混乱的情况。
这个基于ThinkPHP和Laravel框架开发的请假管理系统,正是为了解决这些痛点而生。系统需要处理的核心场景包括:
- 学生在线提交请假申请(包括事假、病假、公假等类型)
- 辅导员/班主任多级审批流程
- 与学校现有教务系统的数据对接
- 请假记录的统计分析与报表生成
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术选型对比
2.1 为什么选择双框架架构
这个项目最特别的地方在于同时使用了ThinkPHP和Laravel两个PHP框架。刚开始接到需求时我也很困惑,但经过分析发现这样的架构有其独特优势:
ThinkPHP(6.0版本)的优势:
- 中文文档完善,适合快速开发管理后台
- 内置的验证器、中间件等组件开箱即用
- 对国内服务器环境兼容性更好
Laravel(8.x版本)的优势:
- 更适合构建RESTful API接口
- Eloquent ORM在复杂查询时更灵活
- 队列任务处理更完善(用于异步处理审批通知)
实际部署方案:ThinkPHP处理后台管理功能(占70%代码量),Laravel专注API服务(占30%代码量),通过JWT进行鉴权通信。
2.2 数据库设计要点
考虑到学校每学期约3万条请假记录的增长量,我们采用了分表策略:
sql复制CREATE TABLE `leave_2023_1` (
`id` bigint(20) UNSIGNED NOT NULL COMMENT '雪花ID',
`student_id` varchar(20) NOT NULL COMMENT '学号',
`type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1病假 2事假 3公假',
`start_time` datetime NOT NULL,
`end_time` datetime NOT NULL,
`status` tinyint(4) NOT NULL DEF
