yiier / yii2-humans-log
人类能看得懂的操作日志
Installs: 350
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 5
Forks: 1
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: *
README
人类能看得懂的操作日志
Description
- 此扩展只要你按照约定的规则,可以帮你记录操作日志。
- 只能监控单条数据,所以不适用于需要操作多条数据。
- 无法做到颗粒度很细的日志,比方说你要记录谁操作了订单的状态,此扩展是无法做到的,你只能记录谁操作了订单,也只能记录订单的最新状态,操作之前的状态无法记录。
- 有特殊情况的话,可以使用
yiier\humansLog\models\HLog::saveLog()
方法单独记录日志。 - 模板使用说明可以看截图,也可以看
src\views\h-log-template\_form.php
文件。
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist yiier/yii2-humans-log "*"
or add
"yiier/yii2-humans-log": "*"
to the require section of your composer.json
file.
Migrations
Run the following command
php yii migrate --migrationPath=@yiier/humansLog/migrations/
Configuration
Once the extension is installed, simply modify your application configuration as follows:
return [ 'modules' => [ 'humans-log' => [ 'class' => 'yiier\humansLog\Module', // 'mainLayout' => '@app/views/layout/hlog.php', // 'safeDelete' => false ], ], ];
Usage
Method One (方式一,推荐)
you need to include it in config in bootstrap section:
return [ 'bootstrap' => [ 'yiier\humansLog\EventBootstrap', ], ];
Method Two (方式二)
Configure Controller class as follows :
use use yiier\humansLog\HLogBehavior; class Controller extends \yii\web\Controller { public function behaviors() { return [ HLogBehavior::className(), ]; } }
Configure Model class as follows :
use use yiier\humansLog\HLogBehavior; class ActiveRecord extends \yii\db\ActiveRecord { public function behaviors() { return [ HLogBehavior::className(), ]; } }
DIY USE
Demo
template
INSERT INTO `h_log_template` (`id`, `title`, `unique_id`, `template`, `method`, `status`, `created_at`, `updated_at`) VALUES (16, '订单备注记录', 'orderRemarkUpdateRecord', '订单 {order_number} 的备注从『{old-remark}』更新为 『{remark}』', 5, 1, 1561953330, 1561953330);
public function afterSave($insert, $changedAttributes) { parent::afterSave($insert, $changedAttributes); if (!\Yii::$app instanceof \yii\console\Application) { $changedRemark = ArrayHelper::getValue($changedAttributes, 'remark'); if (!$insert && $this->remark != $changedRemark) { $logData = [ 'order_number' => $this->order_number, 'old-remark' => $changedRemark, 'remark' => $this->remark ]; HLog::saveLog('orderRemarkUpdateRecord', $logData, $this->order_number); } } }
Routing
You can then access Merit Module through the following URL:
http://localhost/path/to/index.php?r=humans-log/h-log
http://localhost/path/to/index.php?r=humans-log/h-log-template
http://localhost/path/to/index.php?r=humans-log/h-log-template/create