laravel8.0 多对多关联关系belongsToMany方法 连接不同数据库查询 报错问题

1. 运行环境

1). 当前使用的 Laravel 版本?

laravel 8.83.27

2). 当前使用的 php/php-fpm 版本?

PHP 版本:8.0.2
php-fpm 版本:8.0.2

3). 当前系统

window10

4). 业务环境

phpstudy集成环境

5). 相关软件版本

mysql 8.0.12
nginx 1.15.11

2. 问题描述?

项目有多个数据库,company_common_test主数据库, company_test_$companyId 公司数据库。根据laravel 的多对多关联关系belongsToMany方法(查询公司人员,部门,多对多关系)关联查询company_common_test主数据库和 company_test_1001公司库时,

laravel8.0  多对多关联关系belongsToMany方法 连接不同数据库查询 报错问题

报错:公司库连接了主数据库的数据表,导致表找不到

laravel8.0  多对多关联关系belongsToMany方法 连接不同数据库查询 报错问题
每个模型中,我都设置了相应的数据库连接

laravel8.0  多对多关联关系belongsToMany方法 连接不同数据库查询 报错问题

laravel8.0  多对多关联关系belongsToMany方法 连接不同数据库查询 报错问题

laravel8.0  多对多关联关系belongsToMany方法 连接不同数据库查询 报错问题

但还是出现了 数据库连接 不能找到相应的数据表问题

3. 您期望得到的结果?

希望关联关系中,不同的数据表模型能连接不同数据库,查询

4. 您实际得到的结果?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

给你一个方案,你去调试一下

class AdminUser extends Model
{
    public function departments()
    {
        $instance = new InfoCompanyDepartment();
        $query = $instance->newQuery();
        return new BelongsToMany($query, $this, 'admin_user_id', 'id', null);
    }
}
1年前 评论
nb_xw (楼主) 1年前
sparkinzy (作者) 1年前
sparkinzy (作者) 1年前
讨论数量: 14
1年前 评论
nb_xw (楼主) 1年前
Rache1 (作者) 1年前
nb_xw (楼主) 1年前
Rache1 (作者) 1年前
nb_xw (楼主) 1年前

给你一个方案,你去调试一下

class AdminUser extends Model
{
    public function departments()
    {
        $instance = new InfoCompanyDepartment();
        $query = $instance->newQuery();
        return new BelongsToMany($query, $this, 'admin_user_id', 'id', null);
    }
}
1年前 评论
nb_xw (楼主) 1年前
sparkinzy (作者) 1年前
sparkinzy (作者) 1年前
        'mysql' => [
           // ...
            'prefix' => env('DATABASE_PREFIX'), // mg_
           // ...
        ],
1年前 评论
nb_xw (楼主) 1年前

先顶一下,明天给你我运行多个项目,跨库跨服务器无痛关联

1年前 评论
nb_xw (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!