我正在使用laravel 5.3。在我的通知模式中,我需要獲取所有未讀通知,然後將其更新爲已讀。Laravel 5.3獲取所有記錄,然後更新它
正確我有後Model::where()->get();
用foreach做可能配備map();
前get();
由於我認爲它應該可以與
$notifications->map(function($noti){
$noti->is_read= 1;
$noti->update();
});
但它不工作。
我正在使用laravel 5.3。在我的通知模式中,我需要獲取所有未讀通知,然後將其更新爲已讀。Laravel 5.3獲取所有記錄,然後更新它
正確我有後Model::where()->get();
用foreach做可能配備map();
前get();
由於我認爲它應該可以與
$notifications->map(function($noti){
$noti->is_read= 1;
$noti->update();
});
但它不工作。
您應該一次全部更新。在相同的where子句在您選擇
Model::where(...)->update(['read' => true]);
或一切你讀的指標
感謝您的回覆, Bt我需要這些記錄。使用這個我需要再次獲得所有記錄。 –
正如我認爲它應該有可能與 $ notifications-> map(function($ noti){noti-> is_read = 1; $ noti-> update(); }); 但它不工作。 –
你有兩個請求仍然運行得更好。一個用於閱讀,一個用於更新。如果您期望超過3個通知,則不應循環。 –
我不會在這裏一個foreach去。每個循環都會導致一個數據庫查詢。您應該使用特定查詢一次全部更新它們。 –