跨应用跨库调用模型进行查询报错

来源:3-13 模型查询其他使用讲解

qq_玩乐_0

2020-01-15

我有两个数据库elite_user 和 elite_system
然后在框架中定义了两个应用分别为user 和 system
user应用是写了elite_user库的数据库配置 system应用是写了 elite_system库的连接

但是当我在user应用中调用 system 中的模型进行查询的时候报错如下
图片描述
sys_auth_rule表是在system库中的
他自动帮我在前面加上了elite_user库导致无法查询 请问要怎么解决?

写回答

1回答

天经地义

2020-01-21

您好,是不是在user和system中都创建了config/database.php,然后跨应用去实例化模型,这样是会发生这种错误的;您可以这样做,

  1. 删除每个应用里面的database.php这个配置文件

  2. 在根目录下的config/database.php中创建两个连接配置(如下图一)

  3. 在模型中设置连接的配置(如下图二)

//img.mukewang.com/szimg/5e26c15a09a6c2e914971068.jpg

//img.mukewang.com/szimg/5e26c1b20943492a13071109.jpg


这样配置之后呢,不管哪个应用哪里实例化的该模型,这个模型只会连接到你配置的连接信息(elite_system数据库),如果是连接不同的服务器不同数据库之类的都可以这么做,如下图

//img.mukewang.com/szimg/5e26c2a4095a26e222311159.jpg

具体可以参考TP6官方手册的连接数据库:https://www.kancloud.cn/manual/thinkphp6_0/1037531

1
1
singwa
赞。赞赞。
2020-02-08
共1条回复

全流程开发 TP6.0实战高并发电商服务系统

一课就能掌握TP6.0基础及运用,打造完整高并发的电商后端项目

1459 学习 · 1310 问题

查看课程