Допустим, я получаю n кол-во строк из таблицы chats, далее мне надо пройтись по полученной коллекции и произвести некоторые действия с каждой полученной записью. Но, во время работы цикла, в базе могут появиться новые записи, которые соответствуют условию выборки. И получается, что скрипт их не обработает, т.к. запрос к модели Chat уже сделан ранее. Есть ли какой-нибудь способ получить старые + новые записи?
Уточнение: запись после обработки удаляется, массив обрабатываемых данных небольшой, максимум - 10-20 записей
$chats = Chat::where("unread_messages", 0)->get();
$chats->each(function($chat) {
// ...работа с записью
$chat->delete();
});
P.S. можно, конечно, цикл while написать и выгружать по одной, но не хотелось бы, т.к. это, потенциально, мина замедленного действия
while($chat = Chat::where("unread_messages", 0)->first()) {
// ...работа с записью
$chat->delete();
}