rahulabs/yii2-softdelete

Yii2框架的软删除扩展

安装: 4

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

开放问题: 0

类型:yii2-extension

1.0.0 2024-08-06 09:05 UTC

This package is auto-updated.

Last update: 2024-09-06 09:21:03 UTC


README

Yii2框架的软删除扩展。

此扩展确保软删除具有与物理删除一致的 native 行为,并且对 IDE 友好。

安装

安装此扩展的首选方式是通过 composer

运行以下命令之一:

php composer.phar require --prefer-dist rahulabs/yii2-softdelete "*"

或者添加以下内容到你的 composer.json 文件的 require 部分:

"rahulabs/yii2-softdelete": "*"

rahulabs/yii2-softdelete

使用方法

扩展安装后,只需在你的代码中使用即可:

编辑模型类

use rahulabs\softdelete\behaviors\SoftDeleteBehavior;
use rahulabs\softdelete\SoftDelete;

class Model extends \yii\db\ActiveRecord
{
    use SoftDelete;

    public function behaviors()
    {
        return [
            'class' => SoftDeleteBehavior::className(),
        ];
    }
}

更改数据库表结构,添加 deleted_at (int 11) 字段并附加到 UNIQUE 索引。

API

ActiveRecord 类(SoftDelete 特性)

find 系列方法将返回 rahulabs\softdelete\ActiveQuery 对象。

  • softDelete() 使用软删除模式删除数据
  • forceDelete() 使用物理删除模式强制删除数据
  • restore() 恢复软删除的模型数据
  • isTrashed() 是否已软删除

以下命令是 find() / findOne() / findAll() 在不同模式下的对应版本:

所有模型(包括软删除的模型):

  • findWithTrashed()
  • findOneWithTrashed($condition)
  • findAllWithTrashed($condition)

仅查找软删除的模型:

  • findOnlyTrashed()
  • findOneOnlyTrashed($condition)
  • findAllOnlyTrashed($condition)

以下命令已重写为软删除版本:

  • find()
  • findOne()
  • findAll()
  • delete()

rahulabs\softdelete\ActiveQuery

增加了 withTrashed()withoutTrashed()onlyTrashed() 三个方法,设置相应的搜索模式。