为了账号安全,请及时绑定邮箱和手机立即绑定

updateOrCreate 这个到底咋用的啊

updateOrCreate 这个到底咋用的啊

PHP
牛魔王的故事 2019-03-10 20:19:11
我再提交一次相同的数据,他还是给我插入一条新的数据而不是更新, 文档看得不太懂, 望大佬们 指点下~~
查看完整描述

2 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

很多时候看源码就能明白,源码如下:

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

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

        return $instance;
    }

参数 $attributes 是 where 条件,根据 $attributes 参数去数据库匹配是否有相关数据,如果没有则新建数据,有就查询出来。

然后再 fill 参数 values 的值去保存。

查看完整回答
反对 回复 2019-03-18
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

//以id来查找,如果有的话就修改更新,没有的话就create

            $create_bool =Logistics::updateOrCreate([
                'id' => $model['id'],
            ],[
                'a' => $model['a'],
                'b' => $model['b'],
                'c' => $model['c'],
                'd' => $model['d'],
                'e' => $model['e'],
            ]);
查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 1169 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信