Как добавить счетчик в laravel chunk без закрытия?
У меня есть 100000 данных, которые я хочу ввести одновременно, для этого я использую chunk, но chunk не может отображать результаты счетчика, который я сделал.
Это мой код:
$sbuLocationArray = [];
$mergeArray = [];
$insert_data = collect($map);
$chunks = $insert_data->chunk(500);
$loop = 0;
foreach ($chunks as $chunk) {
SBU::insert($chunk->toArray());
for ($i = 0; $i < count($provincesName[$loop]); $i++) {
$locationId = Location::where('name', $provincesName[$loop][$i])->select('id')->first();
$id = DB::getPdo()->lastInsertId();;
$sbuLocationArray[] = ['sbu_id' => $id, 'location_id' => $locationId->id, 'created_by' => $user, 'updated_by' => $user, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now()];
}
$loop++;
}
SBULocation::insert($sbuLocationArray);
return $loop;
В моем коде у меня есть $loop
значение $loop
-это значение счетчика из массива count на foreach, я буду использовать его для установки индекса $provincesName
У вопроса есть решение - Посмотреть?

где этот код называется? Куда возвращается $loop?
Источник

я просто возвращаю $loop, чтобы показать счетчик, но $loop show равен 1, Если мои данные равны 5, $loop все равно 1
Источник

как выглядит вызывающий код?
Источник

Что ты имеешь в виду?
Источник

Я ничего не понял
Источник

просто предложение использовать конструктор запросов для получения идентификатора местоположения. QB быстрее чем красноречивый
Источник

ок я понял, спасибо, это уменьшит время загрузки данных, хотя это почти близко к моим ожиданиям, но спасибо
Источник
Ответы - Как добавить счетчик в laravel chunk без закрытия? / How to add counter in laravel chunk without closure?
Является ответом!

23.12.2019 06:08:49
foreach ($chunks as $chunk) {
foreach ($chunk as $data) {
$loop++; // $loop here
}
// Not here
}

как насчет времени выполнения данных ?, здесь я использую очередь для вставки 100.000 данных в базу данных , а время выполнения данных составляет 49 секунд, перед этим я просто ввожу данные в одну таблицу, но в этом случае я использую переменную $locationId для вставки в SBULocation

Это уже другой вопрос. Попробуйте использовать команду.

в этом коде SBU:: insert($chunk - >toArray ()); находится ли в этом первом foreach или это foreach только для $loop ?

это же работа!! спасибо, так что я могу использовать этот цикл для индекса

Рад это слышать :)
Помочь в развитии проекта: