И есть атрибут товара в таблице, например, is_active.
На фронте есть список товаров, и список товаров, у которых is_active = 1.
Из первого во второй можно добавлять/удалять товары...
По итогу на фронте получается массив товаров, которым нужно задать is_active в true...Этот массив летит на бэк, где обрабатывается. Как правильнее сделать так, чтобы только у товаров из этого массива is_active установился 1. Ведь может быть такое, что у какого-то из товаров уже был установлен is_active, а в прилетевшем массиве этого товара нет. Значит у всех остальных нужно сначала убрать is_active(is_active = 0), а потом по всем товарам пройтись, и у тех кто в массиве сделать is_active = 1.
По итогу получается два цикла, с полным проходам по всем записям. Есть ли более грамотное решение? Спсаиб)
Catalog::query()->update('is_active', 0); Catalog::query()->whereIn('id', $array)->update('is_active', 1); и все это желательно в транзакцию
Обсуждают сегодня