Как проверить последний кусок? - PullRequest
0 голосов
/ 02 февраля 2020

Я использую метод чанков chunk для получения больших данных, но мне нужно знать последний чанк, потому что я собираю данные в файл, а в последнем чанке я не хочу добавлять что-то в файл, поэтому мне нужно знать, что последний кусок

DB::table('users')->chunk(100, function($users)
{
    //how to know if it's the last chunk or not ?
    foreach ($users as $user)
    {
        //
    }
});

это способ узнать последний кусок

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

Ну, вы можете сделать это вручную с помощью счетчика, например:

//get total number of users
$noOfUsers = DB::table('users')->count();

$chunk = 100;

$iterations = ceil($noOfUsers/$chunk);//this many times the loop should go on

//start a counter with 1 and increase it every time
$counter = 1;

DB::table('users')->chunk($chunk, function($users) use (&$counter, $iterations)
{
    //when counter gets equal to iterations, thats your last chunk
    if ($counter === $iterations) {
       //this is the last chunk
    }

    foreach ($users as $user) {
       //
    }
    $counter++;
});
0 голосов
/ 03 февраля 2020

вы можете увидеть эту документацию о чанках в laravel https://laravel.com/docs/5.8/collections#method -chunk

...