ereminmdev / yii2-deleted
存储/恢复已删除的模型。
v1.0.12
2024-04-28 14:25 UTC
Requires
- php: >=7.4
- yiisoft/yii2: ~2.0.1
README
模型、行为和动作用于存储/恢复活动记录。
安装
composer require --prefer-dist ereminmdev/yii2-deleted
并运行迁移
yii migrate --migrationPath=@vendor/ereminmdev/yii2-deleted/migrations --interactive=0
使用
- 将行为添加到活动记录模型
public function behaviors()
{
return [
DeletedBehavior::class,
];
}
或使用自定义注释
public function behaviors()
{
return [
[
'class' => DeletedBehavior::class,
'comment' => function (self $model, DeletedBehavior $behavior) {
return 'Модель «' . $model->title . '»';
},
],
];
}
- 将动作添加到网站控制器
public function actions()
{
return [
'deleted-restore' => [
'class' => 'ereminmdev\yii2\deleted\RestoreAction',
],
];
}
恢复
创建指向恢复动作的URL,并指定需要恢复的Deleted模型的id
参数
echo Url::toRoute(['/site/deleted-restore', 'id'=>MODEL_ID]);
定时器清理词
例如,清除超过1个月的Deleted模型
Deleted::deleteAll(['<', 'created_at', strtotime('-1 month')]);
如果需要EVENT_BEFORE_DELETE或EVENT_AFTER_DELETE事件
$query = Deleted::find()->andWhere(['<', 'created_at', strtotime('-1 month')]);
foreach ($query->each() as $model) $model->delete();