PHP CSV League - Как я могу пропустить нулевое значение?

Итак, я использую Laravel и PostgreSQL в своем проекте, и я хочу импортировать данные в базу данных из моего файла.csv. Я написал этот кусок кода до сих пор:

<?php
use Illuminate\Database\Seeder;
use League\Csv\Reader;

class MigracaoBaseUsuarioSeeder extends Seeder{
    public function run()
    {
        $usedData = [];
        $file = database_path().'/seeds/csv/migracao/base_usuario.csv';
        $csv = Reader::createFromPath($file);
        $csv->setOffset(1);

        $nbInsert = $csv->each(function ($row)  {
            // return false if there is no data
            if ( empty($row)) return false;
            \DB::table('users')->insert(
                array(
                    'id' => $row[0],
                    'password' => bcrypt($row[7]),
                    'is_superuser' => $row[3],
                    'username' => $row[4],
                    'email' => $row[7],
                    'is_staff' => $row[8],
                    'is_active' => $row[9],
                    'created_at' => $row[10],
                    'nome' => $row[11],
                    'cpf' => $row[12],
                    'rg' => $row[13],
                    'telefone' => $row[14],
                    'comprovante' => $row[15],
                    'tipo_usuario' => $row[16],
                    'instituicao_formadora_id' => $row[17],
                    'municipio_id' => $row[18],
                    'declaracao' => $row[19],
                    'gestor' => $row[20],
                )
            );
            return TRUE; // if return is FALSE, iteration will stop
        });
    }
}

Проблема возникает только в том случае, если некоторые из этих столбцов пусты, например "instituicao_formadora_id".

Когда я запускаю этот код, я получаю сообщение об ошибке:

[PDOException]                                                               
  SQLSTATE[22P02]: Invalid text representation: 7 ERRO:  input sintax is invalid for integer: ""

В моем файле.csv у меня есть что-то вроде:

информация, информация, информация, информация,, информация

Итак, как я могу пропустить нулевые значения?

0 ответов

Другие вопросы по тегам