I want to retrieve Offer
s 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 asimmutable
- database containing
offer_related
henceforth known asmutable
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)
i have this problem too, then solved with a trait:
then use that trait and set the $connection property on each models. hope this help
Change the relationship to:
Your original query was trying to establish a relationship without using the relation table (offer_related). That is the problem.