Ich habe zwei Modelle über eine Pivot-Tabelle mit einer zusätzlichen Spalte verbunden, um die Menge für meine BefehleEager Laden einzelner many-to-many-Beziehung
class Item extends Eloquent {
public function containers()
{
return $this->belongsToMany('Container', 'items_containers', 'item_id', 'container_id')->withPivot(['quantity']);
}
}
class Container extends Eloquent {
public function items() {
return $this->belongsToMany('Item', 'items_containers', 'container_id', 'item_id')->withPivot(['quantity']);
}
}
Und ein drittes Modell zu verfolgen:
class OrderItem extends Eloquent {
public function originalItem()
{
return $this->hasOne('Item', 'id', 'item_id');
}
public function container() {
return $this->hasOne('Container', 'id', 'container_id');
}
}
Ich möchte die spezifischen Daten aus der Pivot-Tabelle abrufen können, wenn ich eifrig die OrderItem-Modelle lade. Daher erhalte ich nur die Menge, in der item_id
und container_id
mit denen auf dem Bestellartikel übereinstimmen.
OrderItems::whereOrderId($orderId)
->with(['originalItem', 'container', '???'])
->get();
Was ist der beste Weg, um die Beziehung auf der OrderItem angeben, oder sie laden mit with
?
Ich verstehe nicht wirklich Ihre Struktur, tut mir leid, wenn ich falsch verstanden habe. Der eloquente Weg, sich Modellen anzuschließen, ist so etwas. $ orderItem = OrderItems :: find ($ orderId); $ orderItem-> originalItem; $ orderItem-> container; – Christ
10 Der Hauptzweck der Verwendung des Befehls "with" besteht darin, dass ich die Daten an eine angularjs-App zurücksende. Ich kann den ursprünglichen Artikel und Container den ganzen Tag lang erhalten, aber ich muss den spezifischen Mengenwert erhalten, der in der Pivot-Tabelle items_containers lebt. – aynber