Laravel 如何在拉威尔获得最新的帖子?只有最新的
我正在尝试拉取最新任务,然后在删除最新任务后设置该进度,以保持进度更新 所以,假设我首先解决了20%的任务,我增加了30%的进度,然后我得到了50%。但是,不知何故,我注意到所取得的进展是不正确的,我必须删除它,因此,进展必须回到20% 更直观一点: 20%+30%=50% 50%-30%=20% 话虽如此,在我的控制器中,我有以下内容:Laravel 如何在拉威尔获得最新的帖子?只有最新的,laravel,Laravel,我正在尝试拉取最新任务,然后在删除最新任务后设置该进度,以保持进度更新 所以,假设我首先解决了20%的任务,我增加了30%的进度,然后我得到了50%。但是,不知何故,我注意到所取得的进展是不正确的,我必须删除它,因此,进展必须回到20% 更直观一点: 20%+30%=50% 50%-30%=20% 话虽如此,在我的控制器中,我有以下内容: public function destroy(Request $request, $id) { $id = Progress::wh
public function destroy(Request $request, $id)
{
$id = Progress::where('id', $id)->first();
$task = $id->task;
$id->delete();
$progress = $task->progresses->(dont know how to get the latest one ???);
$task->progress = $progress->progress; /* we set the latest progress to be the current one */
$task->update();
$task->save();
return response()->json([
"code" => 200,
"message" => "Progress deleted successfully"
]);
}
如何获取最新的设置为当前的设置?$task->progress->last只需更改此查询即可
$id = Progress::where('id', $id)->first();
要获取最新记录,请单击此按钮
$id = Progress::where('id', $id)->latest('created_at')->get()->first();
latest是在Illumb\Database\Query\Builder类中定义的函数
$id = Progress::where('id', $id)->latest()->first(); //to get just the most recent created at.
默认情况下,它采用其中的created at列。您可以使用->latest'updated_at'将其设置为updated_at。
t将只按降序排列orderBy列,并取最后一个值。如果使用where子句传递条件,则它将仅返回匹配id的行。因此,请删除where子句条件 只需调用最新的方法
$id = Progress::latest()->first();
而不是
$id = Progress::where('id', $id)->first();
这将返回最新的行
请注意,在最新使用的方法中,在列处创建_以查找最新的行。如果列名不是在列中创建的,则可以传递列名
$id = Progress::latest('created_at')->first();
我假设$task->progress是一个数字?如果是这样的话,你目前的做法是错误的,不是吗?如果此任务有3个进度,现在您删除了一个进度,那么您不能只获取最新的进度并更新任务,因为您需要剩余两个进度的合并进度?您需要汇总所有进度,然后将其保存到$task->progress中。应该使用此解决方案而不是accepted answer,因为在accepted answer中,首先获取所有集合的项目,然后选择最后一个项目。这个答案只是从DB中获取最新的项目,是可以接受的更快更好的解决方案。