Yii2 SoftDelete
, (*1)
Soft delete extension for Yii2 framework., (*2)
This extension ensures that soft-deleted has delete native consistent behavior and is IDE-friendly., (*3)
Installation
The preferred way to install this extension is through composer., (*4)
Either run, (*5)
php composer.phar require --prefer-dist yiithings/yii2-softdelete "*"
or add, (*6)
"yiithings/yii2-softdelete": "*"
to the require section of your composer.json
file., (*7)
Usage
Once the extension is installed, simply use it in your code by :, (*8)
Edit model class:, (*9)
use yiithings\softdelete\behaviors\SoftDeleteBehavior;
use yiithings\softdelete\SoftDelete;
class Model extends \yii\db\ActiveRecord
{
use SoftDelete;
public function behaviors()
{
return [
'class' => SoftDeleteBehavior::className(),
];
}
}
Change database table structures, add deleted_at (int 11)
field and attached to UNIQUE index., (*10)
API
ActiveRecord class (SoftDelete Trait):
find系列方法会返回 yiithings\softdelete\ActiveQuery
对象。, (*11)
- softDelete() 使用软删除模式删除数据
- forceDelete() 使用物理删除模式强制删除数据
- restore() 恢复被软删除的模型数据
- isTrashed() 是否被软删除
以下命令分别是 find()
/ findOne()
/ findAll()
在不同模式下的对应版本:, (*12)
所有模型(包括被软删除的):, (*13)
- findWithTrashed()
- findOneWithTrashed($condition)
- findAllWithTrashed($condition)
只查找被软删除的模型:, (*14)
- findOnlyTrashed()
- findOneOnlyTrashed($condition)
- findAllOnlyTrashed($condition)
以下的命令均被重写成软删除版本:, (*15)
- find()
- findOne()
- findAll()
- delete()
yiithings\softdelete\ActiveQuery
增加了 withTrashed()
, withoutTrashed()
和 onlyTrashed()
三个方法,
设置相应的查找模式。, (*16)