laravel 5.1'deki hasManyThrough ilişkisini kullanmaya çalışıyorum ancak sql sorgusu kullanılan her model için her bağlantıda tanımlanan uygun öneki kullanmıyor. Aynı bağlantıyı kullanan ve bunlardan biri farklı olan 2 modelden 2 modelim var. Bağlantılar arasındaki tek fark, veritabanının aynı olduğu önektir.laravel'de hasManyThrough ilişkisini kullanan modeller için farklı db bağlantısı 5.1
- model bir bağlantısı vardır önek A_ kullanan bir
- Model B önek b_ kullanan bağlantı B sahiptir
- Model C önek b_
ilişkiyi kullanan bağlantı B var
İç B Modeli:
public function relationshipWithA()
{
return $this->hasManyThrough(A::class, C::class, 'Cid', 'Aid');
}
Son sorgu mantığı doğrudur, ancak birleştirilen tabloların B_ önekini kullanarak, sorgudaki tüm tablolar için A_ önekini kullanır.
Bu bir laravel hatası/sınırlaması mı? Buna bir çözüm var mı, yoksa istediğimi elde etmek için el ile katılmalı mıyım?
public function foos()
{
return $this->belongsToMany(Foo::class, 'other_db.foos');
}
Ama hasManyThrough
onun imzası $table
parametresi yoktur, bu nedenle aynı çözüm uygulanamaz:
laravel modelleri, ilişkiler için farklı bağlantılarla çalışmayacaktır çünkü eloquent, sahnelerin arkasındaki SQL birleştirmelerini kullanır ve bu, birden çok DB bağlantısıyla mümkün olmaz – AfikDeri