2015-05-30 14 views
15

Ich habe eine Bestellung und ein Produktmodelle.
"Order" HasMany Produkt (und Produkt belongsTo Auftrag) ...Laravel Eloquent, wie man den zweiten oder dritten Rekord bekommt?

Lassen Sie uns sagen, dass ich die drei Produkte meiner Bestellung angezeigt werden soll, wie das tun?
Ich weiß, die erste konnte abgerufen werden wie $order->products->first() ... aber wie das zweite und dritte Produkt abrufen?

versuchte ich $order->products->find(1) aber „1“ steht für die ID des Produkts ... das will ich nicht wissen ...

Antwort

20

ich endlich die Lösung, ist dies die richtige Syntax gefunden:

$order->products->get(0)->name; will return the first record 
$order->products->get(1)->name; will return the second record 
$order->products->get(2)->name; will return the third record 

Und so weiter ...

1

Sie können dies einfach versuchen:

$order->products->take(3)->get(); 
+0

Dank kupendra, aber es funktioniert immer noch nicht ... – nadir

+0

Zum Beispiel, wenn ich die Produktnamen benötigen, habe ich versucht, $ bestellt -> Produkte-> nehmen (3) -> bekommen ('Name'); (Ich bekomme ein Nullresultat), dann probiere ich $ order-> products-> take (3) -> get() -> name; (Ich bekomme einen Fehler "fehlende Argument") – nadir

+0

Probieren Sie diese $ Order-> Produkte-> Take (3) -> wählen ('Name') -> get() ' – kupendra

14
$order->products()->skip(1)->first();//Second row 
$order->products()->skip(2)->first();//Third row 
.... 

ist performanter als alle Produkte Läden und nur ersten bekommen, zweitens, ecc ..