在 Laravel 4 中使用在 2 个数据库之间创建多对多关系

Posted

技术标签:

【中文标题】在 Laravel 4 中使用在 2 个数据库之间创建多对多关系【英文标题】:In Laravel 4 Using creating a many to many relationship between 2 databases 【发布时间】:2015-01-03 05:44:44 【问题描述】:

您好,我有一个连接/数据库服务器,其中包含来自不同部门的更多数据库。

我正在尝试在不同的数据库之间建立 Laravel eloquent 模型关系,但我似乎无法找到使用 eloquent 的方法。

现在我们正在使用 DB 查询构建器来实现这种关系,但我们正在尝试使用 eloquent 进行重构。

谁能指出我正确的方向或通过告诉我这是否可能来帮助我解决这个问题。

例如,我们有一个包含 x1 x10 表的 X 数据库,我们需要为包含表 y1 到 y20 的 Y 数据库建立关系。

【问题讨论】:

【参考方案1】:

无论您使用 Eloquent 还是查询构建器,都可以做到这一点,而且非常简单。

您必须在数据库配置文件中设置多个连接,每个数据库一个。假设您的连接名称反映了数据库名称、x1、x2、x3 等。

然后你必须在你的 Eloquent 模型中设置连接。

在 Eloquent 模型中,添加以下内容:

protected $connection = "x1";

其中 x1 是连接名称(不是数据库名称)。

然后建立你的关系,例如:

public function x2()
    return $this->belongsTo('Y1');

其中 Y1 是 Eloquent 模型类名称。

【讨论】:

以上是关于在 Laravel 4 中使用在 2 个数据库之间创建多对多关系的主要内容,如果未能解决你的问题,请参考以下文章

在 2 个 laravel 应用程序之间共享会话

在 laravel 中链接 2 个数据集的最有效方法

Laravel 4,雄辩 - 语句和运算符之间

使用 laravel 和 Angular 4 问题通过 API 在数据库中保存文件

在 laravel 4 中使用五个模型的 Eloquent 映射表关系

在 laravel 4 中抽取表格的一些行