rahulabs/ yii2-softdelete
Yii2框架的软删除扩展
1.0.0
2024-08-06 09:05 UTC
Requires
- php: >=5.5.0
- yiisoft/yii2: *
Requires (Dev)
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()
三个方法,设置相应的搜索模式。