terranc/yii2-softdelete

Soft delete extension for Yii2 framework

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 4

Type:yii2-extension

0.2 2024-09-09 08:26 UTC

This package is auto-updated.

Last update: 2024-12-15 08:12:45 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

Soft delete extension for Yii2 framework.

This extension ensures that soft-deleted has delete native consistent behavior and is IDE-friendly.

Installation

The preferred way to install this extension is through composer.

Either run

composer require terranc/yii2-softdelete

Usage

Once the extension is installed, simply use it in your code by :

Edit model class:

use yiithings\softdelete\behaviors\SoftDeleteBehavior;
use yiithings\softdelete\SoftDelete;

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

Change database table structures, add deleted_at (timestamp) field.

API

ActiveRecord class (SoftDelete Trait):

find系列方法会返回 yiithings\softdelete\ActiveQuery 对象。

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

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

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

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

只查找被软删除的模型:

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

以下的命令均被重写成软删除版本:

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

yiithings\softdelete\ActiveQuery

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