CSV的ddeboer / data-import空值

时间:2015-04-14 11:43:15

标签: symfony csv import

在Symfony2中使用ddeboer/data-import捆绑包导入CSV文件时,空值的正确格式是什么?

CSVReader类使用SplFileObject类,它可以逃避任何事情。例如,如果我使用\N,则会将其更改为\\N

我尝试过空值格式,例如..,,.....,"",...,并且它总是说整数字段的值不正确。

MySQL字段可以为空或允许为null,我必须能够使用空值而不是0。例如。

1 个答案:

答案 0 :(得分:1)

我找到了解决此问题的方法,并使用了CallbackItemConverter。

因此,检查每个项目是否为字符串且其值为" NULL"将其更改为PHP null值。

$nullConverter = new CallbackItemConverter(function ($item) {
    foreach ($item as $key => $value) {
        if (is_string($value)) {
            $item[$key] = $value == 'NULL'? null: $value;
        }
    }
    return $item;
});

$workflow->addItemConverter($nullConverter)

实际上你可以改变字符串" NULL"您在CSV导出中使用的任何值,并在工作流程处理时使用相同的转换器转换任何其他字段。