powinien być w stanie wykonać select na tabeli Zamówienia, przy użyciu surowego gdzie znaleźć max (id
) w podzapytania, podobnie jak to:
DB::table('orders')->where('id', DB::raw("(select max(`id`) from orders)"))->get();
Jeśli chcesz używać Eumquent (na przykład, aby przekonwertować swoją odpowiedź na obiekt), będziesz chciał użyć parametru whereRaw, ponieważ niektóre funkcje, takie jak toJSON
lub toArray
, nie będą działały bez używania modeli Eumquent.
$order = Orders::whereRaw('id = (select max(`id`) from orders)')->get();
To oczywiście wymaga posiadania modelu, który wydłuży Eumquent.
class Orders extends Eloquent {}
Jak wspomniano w komentarzach, nie trzeba używać whereRaw
można zrobić całą kwerendy przy użyciu kreator zapytań SQL bez surowego.
// Using the Query Builder
DB::table('orders')->find(DB::table('orders')->max('id'));
// Using Eloquent
$order = Orders::find(DB::table('orders')->max('id'));
(Zauważ, że jeśli pole id
nie jest wyjątkowa, dostaniesz jeden wiersz tylną tylko. - to dlatego find()
powróci tylko pierwszy wynik z serwera SQL).
jest możliwe, aby łańcuch 'toArray()'? Wystąpił błąd, jeśli dołączam -> toArray(). – Shiro
@Shiro 'toArray()' jest modelową metodą Eloquent, a nie DB. Będziesz musiał zamiast tego użyć 'whereRaw()'. Zaktualizowałem swoją odpowiedź. – timgws
dziękuję za odpowiedź, czy mogę wiedzieć, dlaczego umieściłeś tablicę (25)? – Shiro