如何通过检查 csv 中的 2 个列值来检查 csvbulkloader(silverstripe)中的重复检查
How to check duplicatechecks in csvbulkloader (silverstripe) by checking 2 colomn values in csv
public $columnMap = array(
'Date' => 'Date',
'FirstName' => 'FirstName',
'amount' => 'Amount',
);
public $duplicateChecks = array(
'FirstName' => 'FirstName',
);
在 $duplicateChecks
我需要检查名字和金额。我该如何实施?
如果我理解正确的话,您想对两列进行综合检查以识别重复项。
在这种情况下,您需要提供自己的批量加载程序/导入 class 并重载 findExistingObject
方法。
你可以这样做:
class MyCsvBulkLoader extends CsvBulkLoader
{
...
public function findExistingObject($record, $columnMap = [])
{
return DataObject::get($this->objectClass)
->filter(array(
'FirstName' => $record['FirstName'],
'amount' => $record['amount'],
))->first();
}
...
}
public $columnMap = array(
'Date' => 'Date',
'FirstName' => 'FirstName',
'amount' => 'Amount',
);
public $duplicateChecks = array(
'FirstName' => 'FirstName',
);
在 $duplicateChecks
我需要检查名字和金额。我该如何实施?
如果我理解正确的话,您想对两列进行综合检查以识别重复项。
在这种情况下,您需要提供自己的批量加载程序/导入 class 并重载 findExistingObject
方法。
你可以这样做:
class MyCsvBulkLoader extends CsvBulkLoader
{
...
public function findExistingObject($record, $columnMap = [])
{
return DataObject::get($this->objectClass)
->filter(array(
'FirstName' => $record['FirstName'],
'amount' => $record['amount'],
))->first();
}
...
}