Laravel导入CSV数据时避免CPF重复并正确更新字段的问题求助
Laravel导入CSV数据时避免CPF重复并正确更新字段的问题求助
大家好,我是Laravel新手,最近在做一门编程课程的作业时卡住了,想请各位帮忙看看。
我的需求是把一份CSV文件导入数据库,核心要求是不能重复存储CPF信息:如果数据库里已经存在某个CPF对应的记录,就更新这条记录的其他字段;如果不存在,就新增一条记录。
我尝试用updateOrCreate方法来实现,但发现它好像没有正确更新CPF之外的其他字段(比如姓名、电话)。下面是我目前的代码:
Import类代码
public function collection(Collection $collection) { foreach ($collection as $row) { Clientes::updateOrCreate( ['cpf' => $row[1]], [ 'nome' => $row[2], 'telefone1' => $row[0], ] ); } }
Controller代码
public function import(Request $request) { $import = (new ImportTelefones(2)); Excel::import($import, $request->file); return redirect()->back(); }
有没有大佬能帮我排查下问题出在哪?或者有没有更合适的方法实现这个需求?万分感谢!
备注:内容来源于stack exchange,提问作者Carlos Leonardo Silva de Olive
相关产品推荐
相关产品推荐

