Php 如何将更新或插入与Laravel 4一起使用?
我正在Laravel4中构建一个应用程序,我需要以更新或插入查询的形式运行几个查询,以避免重复插入的PK冲突。我还没有找到任何方法来使用Laravel中的查询生成器实现这一点Php 如何将更新或插入与Laravel 4一起使用?,php,mysql,sql,laravel,Php,Mysql,Sql,Laravel,我正在Laravel4中构建一个应用程序,我需要以更新或插入查询的形式运行几个查询,以避免重复插入的PK冲突。我还没有找到任何方法来使用Laravel中的查询生成器实现这一点 我可以修改DB类或类似的东西吗?还是只需要编写纯SQL语句?您可以使用DB::语句 你可以在那里设置重复的密钥更新 不幸的是,除非你做一些像这样的事情,否则(据我所知)用雄辩的语言是无法做到这一点的 $user = User::find(1); if ($user === null) { $user
我可以修改DB类或类似的东西吗?还是只需要编写纯SQL语句?您可以使用DB::语句 你可以在那里设置重复的密钥更新 不幸的是,除非你做一些像这样的事情,否则(据我所知)用雄辩的语言是无法做到这一点的
$user = User::find(1);
if ($user === null) {
$user = new User;
}
$user->name = 'hey';
$user->save();
这将是非常好的,如果流畅的支持重复密钥更新或插入忽略,但它似乎没有。我找到的最接近的解决方案是在模型上使用firstOrCreate()
User::firstOrCreate( array('id'=>1, 'name'=>'hey') );
在某些情况下,这可以完成您需要的操作,而无需写出完整的查询。现在我们可以使用
User::updateOrCreate()
太棒了!他失踪了。
User::firstOrCreate( array('id'=>1, 'name'=>'hey') );