Laravel красноречивый метод фрагмента не возвращает все записи

#laravel #eloquent

#laravel #красноречивый

Вопрос:

В следующем фрагменте метод фрагмента вызывается чуть более половины записей, в которых api_phonebook_option_id равен 0.

     $counter = 0;
    $numberOfOptions = $this->oldOptionModel->where('api_phonebook_option_id', 0)->count();

    $this->oldOptionModel->where('api_phonebook_option_id', 0)->orderBy('phonebook_option_id', 'desc')
        ->chunk(50, function (Collection $options) use (amp;$counter, $numberOfOptions) {

            // do something
            // which don't have return false statement
            $counter  = 1;
        });
    echo $counter;
  

Любые комментарии и предложения приветствуются

Редактировать:

     echo ($counter * 50 == $numberOfOptions); // This line prints false
  

Ответ №1:

 $this->oldOptionModel->where('api_phonebook_option_id', 0)->orderBy('phonebook_option_id', 'desc')
        ->chunk(50, function (Collection $options) use (amp;$counter, $numberOfOptions) {
            foreach($numberOfOptions as $numberOfOption){
              // do something
              // which don't have return false statement
              $counter  = 1;
            }
        });
  

Выполните foreach в функции, чтобы получить один элемент данных