为什么我的 updateOrInsert 不起作用 laravel

New*_*123 2 laravel eloquent laravel-5

我使用 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(),
                    ]);
                }
Run Code Online (Sandbox Code Playgroud)

Tsa*_*oga 5

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

updateOrInsert(array $attributes, array $values = []) 
Run Code Online (Sandbox Code Playgroud)

例子

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(),
    ]);
Run Code Online (Sandbox Code Playgroud)