不同数据库之间的Laravel关系

时间:2019-01-14 21:54:58

标签: mysql laravel-5 eloquent

我目前正在Laravel 5.4项目中尝试执行以下操作

$this->belongsToMany(Module::class,'platform_modules_acquired', 'platform_id', 'module_id');

现在,当表moduleadmin数据库中时,类platform_modules_acquiredclients数据库中的表中提取。当我尝试运行上述代码时,出现错误,提示在platform_modules_acquired数据库中找不到admin表。

我尝试通过说该表为clients.platform_modules_acquired来更改上述请求,但仍未找到该表。我也尝试附加->using('PlatformModules::class'),但仍然收到相同的错误...

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'admin.plataformas_modulos_contratados' doesn't exist (SQL: select 'module' from 'modules' inner join 'platform_modules_acquired' on 'modules'.'id' = 'platform_modules_acquired'.'module_id' where 'platform_modules_acquired'.'platform_id' = 187)

我该如何告诉该关系在表的clients数据库中查找?

1 个答案:

答案 0 :(得分:1)

您可以在关系内部使用这样的连接:

$this->belongsToMany(Module::class,'clients.platform_modules_acquired', 'platform_id', 'module_id');