我在Yii应用程序中意外启用了乐观锁定功能。现在它引起了问题,我想禁用它。有没有一种无痛的方法(即更新我的模型和CRUD而不必再次创建它们)?
答案 0 :(得分:0)
如何使用OptimisticLockingActiveRecord:
从OptimisticLockingActiveRecord类继承您的模型
class MyModel extends OptimisticLockingActiveRecord
{
...
}
将乐观锁定字段添加到更新表单视图文件中:
<?php $form=$this->beginWidget('CActiveForm'); ?>
<?php echo $form->hiddenField($model, 'lock_version'); ?>
<?php echo $form->error($model, 'lock_version'); ?>
...
处理控制器中的StaleObjectError:
...
if (isset($_POST['MyModel'])) {
$model->attributes = $_POST['SiteSettingsData'];
$model->lock_version = $_POST['MyModel']['lock_version'];
try {
$model->save();
} catch(StaleObjectError $e) {
$model->addError('lock_version',
Yii::t('app', 'Site settings have been updated by another user'));
}
...