Die Pflege von Datenbankbeziehungen in Laravel ist eine ziemliche Aufgabe, aber wenn es um verschachtelte Beziehungen geht, werden die Dinge ein wenig verworren, um sie zu handhaben.
In dem folgenden Beispiel sehen wir uns an, wie man verschachtelte Beziehungen in Laravel handhabt.
Bitte beachten Sie, dass dieses Beispiel keine Schritte zur Erstellung von Datenbankmigrationen und Seedern enthält.
Szenario
Nehmen wir ein Beispiel für Kunden und Produkte und ihre entsprechenden Typen. Die Beziehung zwischen Kunde und Produkt und zwischen Produkt und Typ ist hasMany
beziehungsweise. Wir werden diese im Folgenden näher erläutern.
Customer Model
public function product() { //foreign_key, local_key return $this->hasMany( 'App\Product', 'customer_id', 'id' ); }
Product Model
public function type() { return $this->hasMany( 'App\Type' ); }
Mit der einfachen Einrichtung unserer Beziehung sind wir nun bereit, Daten aus unserer DB abzurufen.
Abrufen von Daten aus verschachtelten Beziehungen
Nehmen wir an, dass wir den vom Kunden ausgewählten Typnamen für ein Produkt abrufen müssen.
$customer = Customer::with('product.type')->findOrFail($customer_id); $items = collect(); $m->product->each(function($q) use(&$items) { $items = $items->concat($q->type); }); $name = $items->pluck('name'); dd($name);
Schlussfolgerung
Wenn Sie Fragen oder Feedback zu diesem Code haben. Hinterlassen Sie uns bitte einen Kommentar oder folgen Sie uns auf Twitter.