2015-05-30 13 views
15

Ho un ordine e un modello di prodotto.
"Order" hasMany del prodotto (e Product belongsTo Order) ...Laravel Eloquente come ottenere il secondo o il terzo record?

Diciamo che voglio per visualizzare i 3 prodotti del mio ordine, come fare?
So che il primo potrebbe essere recuperato come $order->products->first() ... ma come recuperare il secondo e il terzo prodotto?

ho cercato $order->products->find(1) ma "1" rappresenta l'ID del prodotto ... che io non voglio sapere ...

risposta

20

ho finalmente ha trovato la soluzione, questa è la sintassi corretta:

$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 

E così via ...

1

Si può semplicemente provare questo:

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

Grazie kupendra, ma ancora non funziona ... – nadir

+0

Per esempio, se ho bisogno il nome del prodotto, ho provato $ ordine -> prodotti-> prendere (3) -> get ('name'); (Ottengo un risultato nullo), quindi ho provato $ order-> products-> take (3) -> get() -> name; (Ricevo un errore "argomento mancante") – nadir

+0

Prova questo '$ order-> products-> take (3) -> select ('name') -> get()' – kupendra

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

è più performante rispetto al caricamento di tutti i prodotti e ottenere solo il primo, secondo, ecc ..

Problemi correlati