Нужно ли избегать циклов обновления моделей в laravel? - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь отсортировать несколько записей для модели на основе поля и сохранить их ранги в БД.Как показано ниже:

$instances = Model::orderBy('field')->get();

$rank = 1;
foreach ($instances as $instance) {
    $instance->update([
        'rank' => $rank,
    ]);
    $rank++;
}

У меня есть два вопроса: 1- Есть ли альтернативные способы избежать использования цикла?например, я помещаю ранги в массив и обновляю целые записи только одним магическим методом.Например:

$instances = Model::orderBy('field')->get();

$rank = 1;
$ranks_array = array();
foreach ($instances as $instance) {
    array_push($ranks_array, $rank);
    $rank++;
}

$instances->magicMethod($ranks_array);

2 - нужно ли вообще это делать?циклы сильно влияют на сервер или нет?Надо сказать, что количество записей, которые я собираюсь обновить, может не превышать 50.

1 Ответ

0 голосов
/ 28 февраля 2019

Для запросов вставки вставка всех записей за один раз будет происходить намного быстрее, чем вставка их одна за другой.Однако для запросов на обновление, если вам нужно обновить определенные строки определенными данными, нет другого способа, кроме как обновить их одну за другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...