基于存在的关联查询不支持跨库吗?

post 表里关联 comments ,两个表位于不同数据库,基于存在的关联查找报错

$posts = App\Post::has('comments')->get();

Persevere,Vtr!

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
AspireHe
最佳答案

支持跨库 以前用过 没啥问题 看看你的Model连接写好了没 最好再看看配置

8个月前
讨论数量: 13
Complicated

支持吧,,我现在的项目就是这么写的,跨库没问题啊,只要model连接好就ok

8个月前
若相惜

@Complicated 你试一下用has方法呢,针对跨库的

8个月前
Complicated

@若相惜 has方法是?

8个月前
AspireHe

支持跨库 以前用过 没啥问题 看看你的Model连接写好了没 最好再看看配置

8个月前
若相惜

@AspireHe 关联查询没有问题,但是使用是否存在的查询好像不支持

8个月前
AspireHe

看下你的查询是否存在的代码

8个月前
若相惜
$posts = App\Post::has('comments')->get();
8个月前
若相惜

tt

8个月前
Prince

同问,跨库查询是否存在,提示表不存在?怎么解决,大佬们

8个月前
若相惜

@Prince 感觉不行的,分开查吧

8个月前

@Prince 在config/database里面配置多个连接mysql连接
然后在model里面连接不同的mysql配置库就行
protected $connection = 'mysql_master';

8个月前
Prince

@若相惜 我刚试了,原生的sql语句可以查

8个月前

@helloBear 这样也是不行的,还是会报错表不存在。
基于存在的关联查询,转换成 sql 其实是个嵌套查询。因为两张表在不同的库,每个查询,会根据当前模型设定的connection 链接数据库,但是主表的 connection 不会显示出来(被省略);最后子查询拼接成一条 sql 的时候就会报错。

6个月前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!