网站首页 > 开源技术 正文
Yii2 的 ActiveQuery 默认不支持 MySQL 的行锁。于是扩展了一下。 欢迎来搞。
Yii2 Lockable ActiveQuery
This package allows you to use pessimistic locking (select for update) when you work with ActiveRecord Query.
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist amoydavid/yii2lockable-query "*"
or add
"amoydavid/yii2lockable-query": "*"
to the require section of your composer.json.
Usage
Set schema map for database connection
<?php return [ 'class' => 'yii\db\Connection', 'schemaMap' => [ 'mysql' => '\amoydavid\Yii2LockableQuery\mysql\Schema', // set up mysql schema ], 'dsn' => 'mysql:host=localhost;dbname=yii', 'username' => 'root', 'password' => '', 'charset' => 'utf8', // Schema cache options (for production environment) //'enableSchemaCache' => true, //'schemaCacheDuration' => 60, //'schemaCache' => 'cache', ];
Extend your ActiveRecord class via \amoydavid\Yii2LockableQuery\ActiveRecord
/**
* Class Sample
* @package common\models
*
*/
class Sample extends \amoydavid\Yii2LockableQuery\ActiveRecord { ... }
Use model locks in transaction.
$dbTransaction = Yii::$app->db->beginTransaction();
try {
$model = Sample::find()->where(['id'=>1])->forUpdate()->one();
$dbTransaction->commit();
} catch(\Exception $e) {
$dbTransaction->rollBack();
throw $e;
}
猜你喜欢
- 2024-09-11 少年歌行。第2部。萧崇登基后……
- 2024-09-11 少年歌行2:司空千落怀孕,萧瑟居然要娶别人为妻
- 2024-09-11 YII框架学习(新手)NO.2(yii框架设计模式)
- 2024-09-11 yii安装与使用详解(easy_install安装)
- 2024-09-11 小编教你 YII2框架模块如何绑定二级域名
- 2024-09-11 一款基于Yii2+Vue2.0+uniapp的开源商城
- 2024-09-11 Yii2开发中js冲突 如何禁用自带的 yii、jquery 和 bootstrap
- 2024-09-11 一款基于Yii2开发的免费商城系统(开发一款游戏的步骤)
- 2024-09-11 Yii2连接pgsql,设置默认schema(sqlplus默认连库)
- 2024-09-11 php生命周期、Laravel生命周期、Yii2生命周期、ThinkPHP生命周期
欢迎 你 发表评论:
- 11-22破解别人空间访问权限(如何破解别人空间权限)
- 11-22安卓解压zarchiver免费版(安卓解压zarchiver使用教学)
- 11-22百度qq号申请注册(在百度上申请qq账号)
- 11-22dos是什么软件
- 11-22系统u盘启动盘(系统 u盘启动)
- 11-22记事本下载(安卓记事本下载)
- 11-22华为电脑wifi开关在哪(华为电脑wifi连接上不能上网怎么办)
- 11-22管理开机启动项(开机启动项管理win10)
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)

本文暂时没有评论,来添加一个吧(●'◡'●)