使用模型更新数据

update方法, save方法, saveAll() 方法, 只有save方法可以识别是否成功, 配置where使用.

 

1. update 静态方法, 一般结合 where 一起用, 如果参数中, 有主键的值, 则不需要.

$res = User::update([
    'id'       => 1,
    'username' => '17771234'
]);

dump($res);

这样的方式, 没法判断是否更新成功. where 条件如果加的话, 放在第二个参数

$res = User::update([
    'username' => '17771234'
], ['id' => 2]);

dump($res->toArray());

也支持闭包函数

$res = User::update([
    'username' => '17771234'
], function ($query) {
    $query->where('id', 'lt', 5);
});

还可以下面这样写

$res = User::where('id', '<' , 6)
    ->update([
        'username' => '17777777',
    ]);
//返回影响的行数
dump($res);

2. save方法, 返回值是受影响的行数

$userModel           = User::get(1);
$userModel->username = '123';
$userModel->email    = '123@qq.com';
$res                 = $userModel->save();

//返回影响的行数
dump($res);

 3. 第三种方法

$userModel = new User;
$res       = $userModel->save([
    'email' => '222@qq.com'
], function ($query) {
    $query->where('id', '<', '5');
});

// 如果想要过滤数据的话, 可以加上 ->allowField(true)
$userModel = new User;
$res       = $userModel->allowField(true)->save([
    'email' => '222@qq.com'
], function ($query) {
    $query->where('id', '<', '5');
});


// 可以用下面的方法,简单一点
$res = $manager->allowField(true)->save(input('post.'), ['mg_id' => $mg_id]);

4. 批量修改数据 saveAll(), 无法识别是否修改成功. 

$res = $userModel->saveAll([
    ['id' => 1, 'username' => 1],
    ['id' => 2, 'username' => 2],
]);

//返回影响的行数
dump($res);

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值