Thinkphp 开启字段缓存后,生成字段缓存文件bug修改

在Thinkphp项目中,开启字段缓存后,遇到仅生成一个数据库的字段缓存文件问题,导致不同数据库表操作错误。通过分析Thinkphp核心Model.class.php文件,发现配置读取错误。解决方案是修改相关代码,确保在多数据库环境下,每个表的字段缓存文件都能正确生成。修复后,每个数据库的字段缓存文件命名格式为'数据库名.表名',有效避免了不同表字段混淆的问题。
摘要由CSDN通过智能技术生成

遇到问题描述如下:

项目中用到两数据库 ,一个基础数据库,基础数据库hq_gynzsxjy中有个站内信息表 hq_sf_message ;  一个微圈数据库hq_gynzsxjy_sxq(简化微信好友圈功能),微圈数据库有同样有个 消息表hq_sxq_message;

       项目为采用了分组,Model目录大致如下

Model 

                      Base

MessageModel.class.php,对应hq_sf_message表

     Sxq

MessageModel.class.php对应hq_sxq_message表

项目关闭debug模式,开启数据字段缓存

Runtime\Data\_fields下只生成文件hq_gynzsxjy.message.php,未生成hq_qynzsxjy_sxq.message.php文件

两个表结构并不一致的,导致已生成缓存后,另一个信息表的相关操作有误(所取字段不同);

查询tp框架后解决办法:

     thinkphp的核心文件Model.class.php中

/**
 * 自动检测数据表信息
 * @access protected
 * @return void
 */
protected function _checkTableInfo() {
    // 如果不是Model类 自动记录数据表信息
    // 只在第一次执行记录
    if(empty
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值