php锁定记录,防止多人操作
来源:互联网 发布:win10 卸载软件 编辑:程序博客网 时间:2024/06/07 21:21
<script type="text/javascript"> //编辑时锁定 function lock() { var controller = "<?= $this->context->id ?>"; var id = "<?= $id?>"; //发送锁定请求 $.getJSON('/admin.php?r=site/lock', {id: id, controller: controller}, function (json) {// console.log(json); }); } lock(); setInterval(lock, 30000);</script>/** * 编辑时锁定(内容、图书编辑时,为了避免多人同时对同一条记录进行操作,记录在编辑时进行锁定) * @param integer $id 记录id * @param string $controller 控制器id */public function actionLock($id, $controller){ $cache = Yii::$app->cache; $key = 'lock_'.$controller.'_'.$id; $value = ['locked' => time(), 'lockedby' => Yii::$app->session->get('__id')]; if ($cache->set($key, $value, 60)) { $ret = ['state' => true]; } else { $ret = ['state' => false]; } echo json_encode((object)$ret);}public function isLock($id){ $cache = Yii::$app->cache; $key = 'lock_'.$this->id.'_'.$id; $value = $cache->get($key); if ($value && $value['lockedby'] != Yii::$app->session->get('__id')) { Yii::$app->session->setFlash('tips', '<span id="message" style="color:#004eff;display: block;text-indent: 40%;">此条记录已锁定,请稍后再试</span>'); return false ; }else{ return true; }}//锁定后直接跳转,否则,会继续加载页面,重新锁定,锁定无效public function actionRolelist_update($id){ $model = OrgRole::findOne($id); if (!$this->isLock($id)){ $this->redirect($_SERVER['HTTP_REFERER']); };}
1 0
- php锁定记录,防止多人操作
- 页面防止多线程操作而锁定页面的解决办法
- 锁定记录
- 图片锁定,防止连接
- PHP excel操作记录
- 多用户并发操作一条记录的锁定机制
- 防止多人操作更新冲突覆盖
- redis内存锁,PHP防止并发操作
- 行锁定防止超卖
- PHP 操作ACCES 插入记录
- PHP 数组操作积累记录
- 锁定数据记录
- oracle记录被锁定
- php原子性操作测试,有效防止多进程对同一段代码的重复执行
- 查询锁定表中非锁定记录。
- 查询锁定表中非锁定记录。
- php 锁定文件
- PHP锁定机制
- 代码动态改变SVG矢量图颜色
- 普元EOS Platform产品支持环境
- 高精度除以高精度
- Jquery表单验证插件–Validform
- maven出错
- php锁定记录,防止多人操作
- 如何获取Client和Server自己的还有对方的IP/port
- 加载更多
- unity3d-配置Android环境,打包发布Apk流程详解
- IT人不要一直做技术
- linux module解析
- 如果你喜欢销售,那么你一定要看!经典之作!
- Android 编程下通过 Theme 和 Style 避免 APP 启动闪黑屏或者白屏,快速启动
- Nginx+tomcat实现集群和负载均衡