gpt4 book ai didi

php - Yii2中如何实现mysql记录锁定

转载 作者:可可西里 更新时间:2023-11-01 06:42:48 25 4
gpt4 key购买 nike

我想在我的 Yii2 应用程序中实现记录锁定功能。

如果一个用户打开更新链接/记录(例如http://localhost/myproject/backend/web/user/update/1),那么另一个用户将无法访问此链接,用户将收到一条 ALERT 消息,内容为“此记录已被其他用户打开”。所以记录/页面应该为另一个用户锁定。 (与 MS Excel 锁定相同)

一旦第一个用户完成并离开该记录/页面,它应该解锁,另一个用户可以读取/更新该数据。

那么我如何在 Yii2 事件记录中使用 mysql 数据库锁定机制或者是否有任何其他方法来实现这一点。

如有任何帮助,我们将不胜感激。

最佳答案

它称为乐观锁定并在 official docs 中描述。 .下面是一个实现示例:

// ------ view code -------

use yii\helpers\Html;

// ...other input fields
echo Html::activeHiddenInput($model, 'version');


// ------ controller code -------

use yii\db\StaleObjectException;

public function actionUpdate($id)
{
$model = $this->findModel($id);

try {
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('update', [
'model' => $model,
]);
}
} catch (StaleObjectException $e) {
// logic to resolve the conflict
}
}

关于php - Yii2中如何实现mysql记录锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31269160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com