Ich habe viele, viele Beziehungen und hier ist, was ich tue:Laravel viele zu viele Abrufen von Daten
In url Ich bin vorbei Unternehmen ID, die in der Business-Tabelle ist:
@foreach ($business as $businesses)
<a target="_blank" href="{{ url('business/' . $businesses->id) }}"> {{($businesses->name) }}
</a> @endforeach
Dann ist diese Funktion RAN:
public function displayBusiness($id) {
$business = Business::find($id)->addresses;
//return $business;
//$address = Address::find($id);
$session = session()->put('key', $id);
$gallery = Gallery::where('business_id', $id)->get();
$location = Location::where('business_id', $id)->get();
$review = Review::where('business_id', $id)->get();
return view('displayBusiness', compact('business', 'address', 'gallery', 'location', 'review'));
}
Aber das Problem ist, die Linien, die kommentiert out sind, bringen Ergebnisse zurück, die Geschäfts-ID entsprechen, die nicht immer der Fall ist, weil manchmal Geschäft id = 1 und Adresse id = 4 aber dieser Code wird zurück Adresse ID = 1
Also was ich tun möchte, ist auf meine Junction-Tabelle, die business_id und address_id und verwenden Sie $ id, um business_id sowie address_id, die diese ID entspricht zu finden.
Rückholgeschäft gibt mir []
Also, was ich will so etwas wie dieses:
Lassen Sie uns $ id = 1 in business_address gehen nehmen und business_id finden, die 1 entspricht; Auch finden address_id dass Spiele gefunden business_id, Tabelle passende ID Geschäft Holen Sie zurück und kompakt die Ergebnisse, die
meine Modelle id gleiche gilt für Adresstabelle entsprechen:
Address.php
public function businesses() {
return $this->belongsToMany(Business::class, 'business_address', 'business_id', 'address_id');
}
Business.php
public function addresses() {
return $this->belongsToMany(Address::class, 'business_address', 'address_id', 'business_id');
}