neoacevedo/yii2-auditing

记录Yii2 ActiveRecord模型的变化

支持包维护!
Ko Fi

安装: 33

依赖者: 0

建议者: 0

安全性: 0

星级: 1

观察者: 1

分支: 0

开放性问题: 0

类型:yii2-extension

24.08.21+1 2024-08-21 19:02 UTC

This package is auto-updated.

Last update: 2024-09-21 19:20:04 UTC


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',
        ],
    ]); ?>
...