【发布时间】:2020-09-25 00:32:29
【问题描述】:
我想在第二个表 offer_related 上检索与 Offer 相关的 Offers,因为我无法更改 Offer 表的架构。
我有两个不同连接的数据库,offers 在一个,offer_related 在另一个。
为了争论,我将在我的示例中为数据库命名如下,以便清楚地说明哪些可以更改,哪些不能更改。
- 包含
offers的数据库此后称为immutable - 包含
offer_related的数据库此后称为mutable
示例架构如下
connection1.mutable.offer_related
offer_id | related_offer_id
---------------------------
1 | 2
1 | 3
connection2.immutable.offers
id | name
---------------------------
1 | foo
2 | bar
3 | baz
我假设这将是一个 belongsToMany 关系,但我似乎无法正确理解。
return $this->belongsToMany(Offer::class, 'immutable.offer', 'id');
// Syntax error or access violation: 1066 Not unique table/alias: 'offer'
我还尝试使用自定义查询手动构建 belongsToMany 关系,但没有成功。
我想打电话
Offer::find(1)->related; // Offer(2), Offer(3)
【问题讨论】:
-
你可以试试这个,看看它是否有效?
return $this->belongsToMany(Offer::class, 'mutable.offer_related', 'offer_id', 'related_offer_id'); -
那行得通,太棒了!发布答案,我会接受。非常感谢。
-
好的!我已经做到了。谢谢!
标签: php laravel laravel-5 eloquent