问答 / 0 / 6 / 创建于 3年前
laravel9
PHP 版本: 8.0
操作数据库的时候如何防止在其他程序操作。就是锁。laravel9如何使用。
php artisan down
可以开启维护模式
@chen900804
php artisan down 这个可以算是悲观锁,因为维护模式,前端是不能访问的
开启悲观锁-》其他人不能访问-》关闭悲观锁后才能修改
开启乐观锁-》其他人可以访问-》会导致修改失败,或修改记录数为 0
要想知道原因,那就需要知道什么是乐观锁,什么是悲观锁。这2个不是真实存在的锁,只是习惯这么叫。你可以搜下详细的说明
你可以看这里有关于悲观锁的使用: 查询构造器《Laravel 9 中文文档》
Model::query()->lockForUpdate()
可以使用 lockForUpdate
lockForUpdate
DB::transaction(function () use ($model) { $user = User::query()->whereKey($model->user_id)->lockForUpdate()->first(); $user?->setMoney($item->price, MoneyOperateType::Increase, "订单({$model->order_number})获得提成"); // 其他逻辑 ... });
我要举报该,理由是:
推荐文章: