因为在执行单条添加的时候“$this->insertId”被复制为数字类型,在执行批量插入的时候有被当作数组对象去执行,在PHP7.1环境下程序报错。如果在如果在Bulder.php类文件393行重置$this->insertId可以解决这个问题$this->insertId=[];
文件位置:vendor\topthink\think-mongo\src\Builder.php
public function insertAll(Query $query, $dataSet)
{
$bulk = new BulkWrite;
$options = $query->getOptions();
foreach ($dataSet as $data) {
// 分析并处理数据
$data = $this->parseData($query, $data);
if ($insertId = $bulk->insert($data)) {
$this->insertId[] = $insertId;
}
}
$this->log('insert', $dataSet, $options);
return $bulk;
}
QQ截图20180401172101.png
( 95.4 KB 下载:4 次 )
最佳答案