Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过检查csv中的2列值来检查csvbulkloader(silverstripe)中的重复检查_Php_Silverstripe - Fatal编程技术网

Php 如何通过检查csv中的2列值来检查csvbulkloader(silverstripe)中的重复检查

Php 如何通过检查csv中的2列值来检查csvbulkloader(silverstripe)中的重复检查,php,silverstripe,Php,Silverstripe,在$duplicateChecks中,我需要检查名字和金额。如何实现这一点?如果我理解正确,您希望对两列进行复合检查以识别重复项 在这种情况下,您需要提供自己的批量加载程序/导入类,并重载findExistingObject方法 你可以这样做: public $columnMap = array( 'Date' => 'Date', 'FirstName' => 'FirstName', 'amount' => 'Amount',

$duplicateChecks
中,我需要检查名字和金额。如何实现这一点?

如果我理解正确,您希望对两列进行复合检查以识别重复项

在这种情况下,您需要提供自己的批量加载程序/导入类,并重载
findExistingObject
方法

你可以这样做:

public $columnMap = array(

    'Date'      => 'Date',
    'FirstName' => 'FirstName',
    'amount'      =>  'Amount',


);
public $duplicateChecks = array(
    'FirstName' => 'FirstName',
);

你能详细说明你需要检查什么吗?我想把这个3列的csv上传到我的数据库。但是我想通过包含firstname和Amount来检查db中的重复项。你的意思是,如果firstname=Dan和Amount=1,那么这只是firstname=Dan和Amount=1的其他行的重复项;但不是FirstName=Dan和Amount=2或FirstName=Nad和Amount=1的重复项?FirstName=Dan和Amount=1的重复项这是一个已知问题:
class MyCsvBulkLoader extends CsvBulkLoader
{
    ...

    public function findExistingObject($record, $columnMap = [])
    {
        return DataObject::get($this->objectClass)
            ->filter(array(
                'FirstName' => $record['FirstName'],
                'amount' => $record['amount'],
            ))->first();
    }

    ...
}