Laravel 5.5 获取最近更新的多条记录
Laravel 5.5 get multiple records which are recently updated
我正在显示最近更改的多条记录。在以前的视图中有一个按钮,当我单击时,所有记录的 kitchen_status 从 0 变为 1。之后如果我添加更多记录并将其 kitchen_status 更改为 1,那么我只想显示最新的kitchen_status 为 1 的记录。这是我试图得到的:
$orders = Order::where([
'kitchen_status' => 1,
'delivery_status' => 0,
])
->where('updated_at', \DB::raw("(select max(`updated_at`) from orders)"))
->get();
这很好用,但是当我添加默认值为 0 的 kitchen_status 的新记录时,会显示 none 记录。我知道 last ->where() 是错误的,但我怎样才能让它正确?
简而言之,我想显示所有最新的 updated_at 的记录。一些小帮助将挽救我的一天。
我不确定我是否 100% 理解了这个问题,但我认为您要找的是
Model::whereDate('updated_at', '>', \Carbon::now()->subHours(2));
这将为您提供 updated_at
超过 2 小时的所有记录。该参数可以更改为其他值,例如 10 小时等,如果您需要更大的范围,还有一个 subDays(), subMonths()
等。
您可以将最近的条目数限制为
$orders = Order::where([
'kitchen_status' => 1,
'delivery_status' => 0,
])->orderBy('updated_at','DESC')->limit(20)
->get();
您可以将号码更改为您想要的号码。
我认为这会有所帮助。
$orders = Order::where([
'kitchen_status' => 1,
'delivery_status' => 0,])->orderBy('update_at','DESC')->paginate(15);
我已经尝试过这段代码并且它工作完美,但我仍然在寻找简短而纯粹的方法。这是我找到的代码:
$orders = Order::select('orders.*')
->where('kitchen_status', 1)
->where('delivery_status', 0)
->where('updated_at', \DB::raw("(SELECT max(updated_at) FROM orders WHERE kitchen_status = 1 AND delivery_status = 0)"))
->get();
将此答案确认为正确答案好还是请添加更多答案。
我正在显示最近更改的多条记录。在以前的视图中有一个按钮,当我单击时,所有记录的 kitchen_status 从 0 变为 1。之后如果我添加更多记录并将其 kitchen_status 更改为 1,那么我只想显示最新的kitchen_status 为 1 的记录。这是我试图得到的:
$orders = Order::where([ 'kitchen_status' => 1, 'delivery_status' => 0, ]) ->where('updated_at', \DB::raw("(select max(`updated_at`) from orders)")) ->get();
这很好用,但是当我添加默认值为 0 的 kitchen_status 的新记录时,会显示 none 记录。我知道 last ->where() 是错误的,但我怎样才能让它正确?
简而言之,我想显示所有最新的 updated_at 的记录。一些小帮助将挽救我的一天。
我不确定我是否 100% 理解了这个问题,但我认为您要找的是
Model::whereDate('updated_at', '>', \Carbon::now()->subHours(2));
这将为您提供 updated_at
超过 2 小时的所有记录。该参数可以更改为其他值,例如 10 小时等,如果您需要更大的范围,还有一个 subDays(), subMonths()
等。
您可以将最近的条目数限制为
$orders = Order::where([
'kitchen_status' => 1,
'delivery_status' => 0,
])->orderBy('updated_at','DESC')->limit(20)
->get();
您可以将号码更改为您想要的号码。
我认为这会有所帮助。
$orders = Order::where([
'kitchen_status' => 1,
'delivery_status' => 0,])->orderBy('update_at','DESC')->paginate(15);
我已经尝试过这段代码并且它工作完美,但我仍然在寻找简短而纯粹的方法。这是我找到的代码:
$orders = Order::select('orders.*')
->where('kitchen_status', 1)
->where('delivery_status', 0)
->where('updated_at', \DB::raw("(SELECT max(updated_at) FROM orders WHERE kitchen_status = 1 AND delivery_status = 0)"))
->get();
将此答案确认为正确答案好还是请添加更多答案。