如何通过检查 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();
    }

    ...
}