Как получить определенные столбцы в Laravel [Maatwebsite/Laravel-Excel]

файл, который я импортирую, содержит тысячи записей, что замедляет работу моей сети. я хочу прочитать только те столбцы, которые мне нужны, прежде чем вставлять их в базу данных. Когда файл обрабатывается, он должен сначала искать эти столбцы, а не весь файл, и извлекать строки этих столбцов.

Excel::load($path, function($reader) {

//Getting headers using this


       $headers = $reader->first()->keys()->toArray();

//This is the array of required columns

       $headings = array('registrant_name','registrant_address','registrant_phone','registrant_zip','registrant_email','registrant_country','registrant_state','registrant_city');


});

Вставка данных после чтения файла.

 if($data->count() > 0)
             {
              foreach($data->toArray() as $value)
              {
                $insert[] = array(
                 'registrant_name'  => $value['registrant_name'],
                 'registrant_address'   => $value['registrant_address'],
                 'registrant_phone'   => $value['registrant_phone'],
                 'registrant_zip'   => $value['registrant_zip'],
                 'registrant_email'   => $value['registrant_email'],
                 'registrant_country'   => $value['registrant_country'],
                 'registrant_state'   => $value['registrant_state'],
                 'registrant_city'   => $value['registrant_city']

                );                
               }
              }


      if(!empty($insert))
      {
       DB::table('customers')->insert($insert);
      }    

person Jo-ji    schedule 28.02.2020    source источник


Ответы (1)


В коллекциях вы можете проверить метод только в документации

i.e.

$headers = $reader->first()->only(['registrant_name','registrant_address','registrant_phone','registrant_zip','registrant_email','registrant_country','registrant_state','registrant_city']);

Вы также можете использовать chunk для вставки данных в меньшие коллекции, чем в одну большую.

Не могли бы вы обновить сообщение с классом App\Import, чтобы помочь вам больше.

person Nikolas    schedule 28.02.2020