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 у меня есть что-то вроде:
информация, информация, информация, информация,, информация
Итак, как я могу пропустить нулевые значения?