2017-08-24 81 views
0

在laravel应用程序中,我使用一个包将excel文件导入到模型表中。 excel文件中的某些行是新的,其他行是数据库中现有模型的更新。有什么方法可以插入新记录并使用雄辩或查询生成器更新现有记录(使用不同的值)。Laravel:检查模型列表是否已经存在,并使用不同的值更新它们

+2

OK ..发布您的代码。让我们看看你都试过.. –

+0

使用'updateOrCreate'方法,https://laravel.com/docs/5.4/eloquent #other-creation-methods – Wreigh

回答

0

简而言之,您需要在电子表格中选择唯一区分每行的标识符。例如电子邮件或身份证。然后,您可以查询数据库以查看给定的记录是否已经存在并基于该创建或更新。

Laravel通过Eloquent的save()方法使得这种方法相对容易,您可以通过该方法调用给定的模型实例。

save()会假设您正确设置模型,决定一行是否已经存在并且需要更新,或者如果不存在并且需要创建。

这里看到更多的信息:https://laravel.com/docs/5.3/eloquent#inserting-and-updating-models

+0

在我将导入的每个文件中,它将会超过1000行,我是否需要为每行保存? –

+0

是的,你只需循环遍历excel文件中的每一行,用新数据实例化相应的模型并调用'save()'就可以了 – Bananaapple

相关问题