thinkphp3.2.2升级3.2.3后 Base table or view not found: 1146解决办法

作者:袖梨 2022-06-25

在没升级前如果thinkphp中没有对应的数据表,直接定义模型就可以了,用D方法实例化就可以了,不过最近tp升级到3.2.3后出现问题提示错误:SQLSTATE[42S02]: Base table or view not found: 1146 Table 'gudong365.gd_weixin' doesn't exist  我确实没有创建gd_weixin这张表,但是模型是这样定义的:WeixinModel

搜索了下官方网站,也有人问过这个问题,官方这样回复:【关闭调试模式应该就没有了,模型类没有对应的数据表的话 最好设置为虚拟模型】这样的回答对我这样的小白来说模棱两可,关闭调试模式是很好关闭,最好设置为虚拟模型,幸好还有手册,搜索了下:原来有这个虚拟模型,以前根本木有用过……

虚拟模型是指虽然是模型类,但并不会真正的操作数据库的模型。有些时候,我们建立模型类但又不需要进行数据库操作,仅仅是借助模型类来封装一些业务逻辑,那么可以借助虚拟模型来完成。虚拟模型不会自动连接数据库,因此也不会自动检测数据表和字段信息,有两种方式可以定义虚拟模型:

所以如果定义的模型没有对应的数据表,只要这样就搞定了:

protected $autoCheckFields =false;  (这里就是官方说的【最好设置为虚拟模型】)

这样的话就运行成功啦。麻烦官方回复的时候直接一点……  也好考虑下我们这些小白的感受。

相关文章

精彩推荐