鍍金池/ 問答/PHP/ updateOrCreate 這個(gè)到底咋用的啊

updateOrCreate 這個(gè)到底咋用的啊

我再提交一次相同的數(shù)據(jù),他還是給我插入一條新的數(shù)據(jù)而不是更新,

文檔看得不太懂,

望大佬們 指點(diǎn)下~~

回答
編輯回答
尋仙

//以id來查找,如果有的話就修改更新,沒有的話就create

            $create_bool =Logistics::updateOrCreate([
                'id' => $model['id'],
            ],[
                'a' => $model['a'],
                'b' => $model['b'],
                'c' => $model['c'],
                'd' => $model['d'],
                'e' => $model['e'],
            ]);
2018年9月9日 16:44
編輯回答
傲嬌范

很多時(shí)候看源碼就能明白,源碼如下:

    public function updateOrCreate(array $attributes, array $values = [])
    {
        $instance = $this->firstOrNew($attributes);

        $instance->fill($values)->save();

        return $instance;
    }

參數(shù) $attributes 是 where 條件,根據(jù) $attributes 參數(shù)去數(shù)據(jù)庫匹配是否有相關(guān)數(shù)據(jù),如果沒有則新建數(shù)據(jù),有就查詢出來。

然后再 fill 參數(shù) values 的值去保存。

2018年4月10日 18:20