2015-05-30 14 views
15

Mam modele zamówienia i produktu.
"Order" Produkt HasMany (i produkt należy do zamówienia) ...Laravel Wymowne, jak zdobyć drugi lub trzeci rekord?

Załóżmy, że chcę wyświetlić 3 produkty z mojego zamówienia, jak to zrobić?
Wiem, że pierwsze z nich można pobrać jak $order->products->first() ... ale jak odzyskać drugi i trzeci produkt?

Próbowałem $order->products->find(1) ale "1" reprezentuje identyfikator produktu ... co nie chcę wiedzieć ...

Odpowiedz

20

I wreszcie Okazało się, że rozwiązanie to jest poprawna składnia:

$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 

I tak dalej ...

1

Można po prostu spróbuj tego:

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

Dzięki kupendra, ale to nadal nie działa ... – nadir

+0

Na przykład, jeśli muszę nazwę produktu, próbowałem $ zamówienie -> produkty-> take (3) -> get ('name'); (Otrzymuję wynik zerowy), a następnie próbowałem $ order-> products-> take (3) -> get() -> name; (Otrzymuję błąd "brakujący argument") – nadir

+0

Spróbuj tego '$ order-> products-> take (3) -> select ('name') -> get()' – kupendra

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

Czy bardziej wydajnych niż ładuje wszystkie produkty i uzyskanie jedynie pierwszy, drugi, ecc ..

Powiązane problemy