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. 您实际得到的结果?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

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

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年前

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