我的問題是關于 spatie/ActivityLog 的。有比下面更好的方法來使用 spatie/ActivityLog 記錄大量更新嗎?也許不使用foreach?我的解決方案:
$newStatus = 1;
$resultList = Model::where('Status', 0)->get();
LogBatch::startBatch();
foreach($resultList AS $result){
$result->Status = $NewStatus;
$result->save();
}
LogBatch::endBatch();
當一行更新發生時,我看起來像這樣:
Model::where('Id', 1)->first()->update(['Status'] => $newStatus);
Laravel:9 ,PHP:8 ,spatie/laravel-activitylog:4.6
我試圖在許多谷歌、stackoverflow 搜索中找到解決方案,它現在作業得很好。可能沒有更好的解決方案,但可能有,我想制作一個更簡單、更清晰、可讀且可能更快的代碼。
謝謝你們!
uj5u.com熱心網友回復:
除非選擇邏輯比你在問題中發布的更復雜,否則你可以直接更新
$newStatus = 1;
$resultList = Model::where('Status', 0)->update(['Status' => $newStatus]);
或者,如果您需要 ID
$newStatus = 1;
$resultIds = Model::where('Status', 0)->pluck('id')->toArray();
LogBatch::startBatch();
Model::whereIn('id', $resultIds)->update(['Status' => $newStatus]);
LogBatch::endBatch();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/535881.html
