Laracode
Laracode

Eloquent метод toQuery

Знаете ли вы, что в Laravel существует метод под названием toQuery? Он позволяет выполнять операции над коллекцией моделей одним запросом, используя фильтрацию по первичному ключу 🚀.

Метод toQuery возвращает экземпляр конструктора запросов Eloquent, в котором автоматически установлено условие whereIn для всех первичных ключей, присутствующих в коллекции.

<?php

$users = User::where('status', 'VIP')->get();

// Отдельный sql запрос на обновление каждой записи
foreach ($users as $user) {
    $user->update(['status' => 'Administrator']);
}

// Один запрос на обновление всех записей
$users->toQuery()->update(['status' => 'Administrator']);