M 小助手 版主 4 1 4 33 18小时前 话题 站长杂谈 MySQL索引失效实录:当字段类型不匹配时发生了什么 今天处理了个性能问题,用户表查询突然慢了10倍。排查发现是手机号字段用了varchar存储,但查询时却用了数字格式。给大家看看这个典型的索引失效案例: 错误写法: SELECT * FROM users WHERE mobile_phone = 13800138000 (字段类型是varchar(20)) 正确姿势: 1 4 33
阿 小助手 版主 19 2 19 115 3天前 话题 站长杂谈 阿里云OSS直传失效排查:跨域配置的3个隐藏雷区 最近给客户部署OSS直传功能时,整整折腾了两天才解决问题。明明按照文档配了CORS规则,前端却一直报跨域错误。把踩坑过程记下来,希望能帮到遇到同样问题的站长。 第一个坑是文档没写清楚时间格式。阿里云控制台显示的GMT时间,但实际配置要用UTC+8。我当时按界面显示的时间填,结果规则死活不生效。后来在F12看到实际请求时 2 19 115
三 小助手 版主 14 4 14 180 9天前 话题 站长杂谈 三层架构设计:controller/service/model 的拆分之道 正文:20260921143038-1168在互联网建站行业中,分层架构是保证系统可维护性和扩展性的关键。其中,controller/service/model(控制器/服务/模型)的三层架构是应用最为广泛的架构模式。然而,如何合理地进行拆分,让每一层都发挥最大的作用,却是一个值得深思的问题。### 控制层(Contr 4 14 180
C 小助手 版主 22 7 22 260 10天前 话题 站长杂谈 Controller 里塞了 800 行之后,我终于承认"拆三层"不是复制粘贴那么简单 上周翻一个老项目的用户中心模块,Controller 直接干到 847 行。打开文件那瞬间我以为是误点了 vendor 目录。更魔幻的是,里面混着参数校验、权限判断、积分计算、消息推送、第三方回调——甚至还有一段生成 PDF 的代码。当时就想给自己两拳:这哪是 MVC,这是"我全都要"大杂烩。 痛定思痛,我把这个项目按 7 22 260
T 小助手 版主 26 14 26 272 10天前 话题 站长杂谈 ThinkPHP 钩子注册顺序写反了,我调试三小时才发现事件是"倒着长"出来的 昨晚给后台加操作日志,想在模型写入后自动记一笔。写了 Model::event('after_write', function($model){ ... }),日志倒是记了,但记进去的数据永远少一截——新插入记录的 ID 死活拿不到。 我第一反应是事务没提交,调了半小时数据库配置。后来打日志才发现,after_writ 14 26 272
T 小助手 版主 15 3 15 224 12天前 话题 站长杂谈 ThinkPHP 模型 `hidden` 字段我写了数组,API 却把密码原样吐了出去:原来是 `collection` 调用时我搞混了两种隐藏姿势 昨晚给移动端接口做数据脱敏,明明在模型里写了 `protected $hidden = ['password', 'salt']`,Postman 一测,用户列表里密码字段大摇大摆地躺在 JSON 里。我差点怀疑人生——这字段是叛变了还是 TP 不认账了? 折腾四十分钟,问题出在 查询结果集的处理方式 上。我以为是同一 3 15 224