laravel - 为什么我的 updateOrInsert 不工作 laravel

标签 laravel laravel-5 eloquent

我使用 updateOrInsert 来避免重复数据,为什么 Update 函数不起作用并总是插入数据?

foreach($datas as $data){
                    DB::table('users')->updateOrInsert([
                        'user_connect_id' => $user->connect_id,
                        'description' => $data['description'],
                        'created_by' => $login->name,
                        'modified_by' => $login->name,
                        'created_at' => Carbon::now(),
                    ]);
                }

最佳答案

查看 [updateOrInsert] 此文档 ( https://laravel.com/api/6.x/Illuminate/Database/Query/Builder.html#method_updateOrInsert )。你需要两个参数。一个是匹配属性(即,如果记录存在,您将用来标识记录的属性),另一个是您的数组(您希望插入或更新记录的新值)。

updateOrInsert(array $attributes, array $values = []) 

示例

DB::table('users')->updateOrInsert(
    [
        'user_connect_id' => $user->connect_id
    ],
    [
        'user_connect_id' => $user->connect_id,
        'description' => $data['description'],
        'created_by' => $login->name,
        'modified_by' => $login->name,
        'created_at' => Carbon::now(),
    ]);

关于laravel - 为什么我的 updateOrInsert 不工作 laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59710378/

相关文章:

php - Laravel DecryptException-有效负载无效

php - Laravel 5.2 时间戳

php - 我如何在不循环/foreach的情况下对mysql查询结果执行操作

php - Laravel barryvdh/laravel-dompdf 安装错误

mysql - 如何在 "User::with"查询中使用 eloquent 获取 Laravel 中的某些列?

laravel - 如何将 Laravel 查询生成器中的子查询链接到外表

mysql - Laravel Eloquent 独特的时间戳年份

php - 渴望加载嵌套多重关系

php - 拉维尔 5.3 : Creating a PostCommentsController for a Blog

Laravel - 下载 PhpSpreadsheet 之前不保存