Ho due tabelle come questo:Ottenere solo l'ultimo valore su un tavolo unito con Eloquente
prodotti:
+----+-----------+
| id | name |
+----+-----------+
| 1 | Product 1 |
| 2 | Product 2 |
| 3 | Product 3 |
| 4 | Product 4 |
+----+-----------+
prezzi:
+----+-------+------------+---------------------+
| id | price | product_id | created_at |
+----+-------+------------+---------------------+
| 1 | 20 | 1 | 2014-06-21 16:00:00 |
| 2 | 10 | 1 | 2014-06-21 17:00:00 |
| 3 | 50 | 2 | 2014-06-21 18:00:00 |
| 4 | 40 | 2 | 2014-06-21 19:00:00 |
+----+-------+------------+---------------------+
ho questo relazione su Prodotto:
public function prices()
{
return $this->hasMany('Price');
}
Posso facilmente eseguire Product::with('prices')->get();
per ottenere ogni prodotto con ciascuno dei prezzi che ha avuto.
Come posso utilizzare Eloquent per ottenere solo il prezzo più recente? (Inoltre, cosa succede se volevo che il prezzo più basso/più costosa, invece?)
Fatelo ridefinendo la relazione stessa. È abbastanza carino. Votare! – Unnawut
Questo è davvero fantastico, e ho imparato molto. Dove posso trovare la documentazione su 'latest()'? Ho controllato http://laravel.com/api/class-Illuminate.Database.Eloquent.Model.html e non ho visto alcun riferimento ad esso. –
È il metodo sul generatore di query di base. Controlla qui: http://laravel.com/api/4.2/ sulla classe 'Illuminate \ Database \ Query \ Builder'. –