neoacevedo/ yii2-auditing
记录Yii2 ActiveRecord模型的变化
24.08.21+1
2024-08-21 19:02 UTC
Requires
- php: >=8.0
- yiisoft/yii2: ~2.0.45
README
记录Yii2 ActiveRecord模型的变化。
本包允许通过提供有关可能的信息差异或异常的信息来维护模型更改的历史记录,这些信息可能表明可疑活动。接收和存储的信息可以随后以各种方式部署。
安装
安装此扩展的首选方式是通过composer。
然后执行
php composer.phar require --prefer-dist neoacevedo/yii2-auditing "*"
或将其添加到您的composer.json
文件的require部分:
"neoacevedo/yii2-auditing": "*"
require
使用
一旦扩展被安装,在您的应用程序控制台配置文件中,在migrationPath
区域添加
... '@vendor/neoacevedo/yii2-auditing/neoacevedo/auditing/migrations', ...
然后,在您的模型代码中,在behaviors
方法内添加
public function behaviors() { return [ [ 'class' => \neoacevedo\auditing\behaviors\AuditBehavior::class, 'deleteOldData' => true, // Para borrar datos antiguos del registro de eventos 'deleteNumRows' => 20, // Borra esta cantidad de registros ], ... ]; }
展示信息
您可以将信息展示为应用中实现的所有模型。
您可以使用控制器和视图来使用GridView
列出历史记录。例如,您可以创建一个名为AuditingController
的控制器,并创建以下actionIndex
方法:
/** * Lists all Auditing models. * * @return string */ public function actionIndex() { $searchModel = new AuditingSearch(); $dataProvider = $searchModel->search($this->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); }
为了查看数据,创建actionView
方法
/** * Displays a single Auditing model. * @param int $id ID * @return string * @throws NotFoundHttpException if the model cannot be found */ public function actionView($id) { return $this->render('view', [ 'model' => $this->findModel($id), ]); }
在view
视图中,您可以添加GridView
来列出历史记录
... <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'id', 'user_id', 'description', 'event', 'model', 'attribute', 'old_value', 'new_value', 'action', 'ip', 'created_at', ], ]); ?> ...