Laravel:删除除最新 5 之外的所有内容

Fel*_*ime 4 php laravel

我正在尝试使这个查询起作用:

$deleteSubmissions = ViewedSubmission::where('user_id', Auth::user()->id)
    ->latest()
    ->skip(5)
    ->delete();
Run Code Online (Sandbox Code Playgroud)

我想删除 auth 用户的所有 ViewedSubmissions 记录(最新的 5 条记录除外)。我怎样才能做到这一点?目前,尽管有超过 5 条记录,但它不会删除任何内容。

cee*_*yoz 7

我会这样处理:

$keep = ViewedSubmission::where('user_id', Auth::user()->id)
    ->latest()
    ->take(5)
    ->pluck('id');

ViewedSubmission::where('user_id', Auth::user()->id)
    ->whereNotIn('id', $keep)
    ->delete();
Run Code Online (Sandbox Code Playgroud)