您应该能够在订单表上执行选择,使用原始 WHERE 在子查询中查找 max(),如下所示:id
\DB::table('orders')->where('id', \DB::raw("(select max(`id`) from orders)"))->get();
如果你想使用 Eloquent(例如,这样你就可以将响应转换为对象),你会想要使用 whereRaw,因为有些函数,如 or,如果不使用 Eloquent 模型,将无法工作。toJSON
toArray
$order = Order::whereRaw('id = (select max(`id`) from orders)')->get();
当然,这需要你有一个扩展Eloquent的模型。
class Order extends Eloquent {}
如注释中所述,您不需要使用 ,您可以使用查询生成器执行整个查询,而无需原始 SQL。whereRaw
// Using the Query Builder
\DB::table('orders')->find(\DB::table('orders')->max('id'));
// Using Eloquent
$order = Order::find(\DB::table('orders')->max('id'));
(请注意,如果该字段不唯一,则只会返回一行 - 这是因为只会从 SQL 服务器返回第一个结果。id
find()