Mam dwie tabele tak:Uzyskiwanie tylko ostatnią wartość na połączonej tabeli z wymownym
produkty:
+----+-----------+
| id | name |
+----+-----------+
| 1 | Product 1 |
| 2 | Product 2 |
| 3 | Product 3 |
| 4 | Product 4 |
+----+-----------+
Ceny:
+----+-------+------------+---------------------+
| 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 |
+----+-------+------------+---------------------+
mam to związek na produkt:
public function prices()
{
return $this->hasMany('Price');
}
Mogę łatwo uruchomić Product::with('prices')->get();
, aby uzyskać każdy produkt z każdą ceną, jaką miał.
Jak korzystać z Eloquent, aby otrzymywać najświeższe ceny? (Również, co gdybym chciał najtańszy/najdroższą cenę zamiast?)
Zrób to, zmieniając samą relację. To całkiem miłe. Głosowanie w górę! – Unnawut
To jest naprawdę wspaniałe i wiele się nauczyłem. Gdzie mogę znaleźć dokumentację dotyczącą 'latest()'? Sprawdziłem http://laravel.com/api/class-Illuminate.Database.Eloquent.Model.html i nie widziałem tam żadnego odnośnika. –
Jest to metoda na podstawie konstruktora zapytań. Sprawdź tutaj: http://laravel.com/api/4.2/ na klasie 'Illuminate \ Database \ Query \ Builder'. –