dongyang9813 2017-04-27 13:25
浏览 264
已采纳

Laravel HasMany跨多个连接

I want to retrieve Offers related to Offer on a second table offer_related because I can't change the schema of the Offer table.

I have two databases on different connections, offers on one, and offer_related on another.

For the sake of argument, I'm going to name databases as follows for clarity in my examples with regards to which can change and which can't.

  • database containing offers henceforth known as immutable
  • database containing offer_related henceforth known as mutable

Example schema is as follows

connection1.mutable.offer_related

offer_id | related_offer_id
---------------------------
1        | 2
1        | 3

connection2.immutable.offers

id | name
---------------------------
1  | foo
2  | bar
3  | baz

I'm assuming it'd be a belongsToMany relationship, but I can't seem to get it right.

return $this->belongsToMany(Offer::class, 'immutable.offer', 'id');

// Syntax error or access violation: 1066 Not unique table/alias: 'offer'

I've also tried to manually build out a belongsToMany relationship with a custom query with no success.

I'd like to be able to call

Offer::find(1)->related; // Offer(2), Offer(3)
  • 写回答

2条回答 默认 最新

  • dongqixian8474 2017-04-27 13:54
    关注

    Change the relationship to:

        return $this->belongsToMany(Offer::class, 'mutable.offer_related', 
                                    'offer_id', 'related_offer_id');
    

    Your original query was trying to establish a relationship without using the relation table (offer_related). That is the problem.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大