sender->className() !== AdminLogModel::className()) { $desc = '
'; foreach ($event->sender->getAttributes() as $name => $value) { !is_string( $value ) && $value = print_r($value, true); $desc .= $event->sender->getAttributeLabel($name) . '(' . $name . ') => ' . $value . ',
'; } $desc = substr($desc, 0, -5); $model = new AdminLogModel(); $class = $event->sender->className(); $idDes = ''; if (isset($event->sender->id)) { $idDes = '{{%ID%}} ' . $event->sender->id; } $model->description = '{{%ADMIN_USER%}} [ ' . Yii::$app->getUser()->getIdentity()->username . ' ] {{%BY%}} ' . $class . ' [ ' . $class::tableName() . ' ] ' . " {{%CREATED%}} {$idDes} {{%RECORD%}}: " . $desc; $model->route = Yii::$app->controller->id . '/' . Yii::$app->controller->action->id; $model->user_id = Yii::$app->getUser()->getId(); $model->save(); } } /** * when delete a record from database, auto generate a log * * @param $event * @throws \Throwable */ public static function update($event) { if (! empty($event->changedAttributes)) { $desc = '
'; $oldAttributes = $event->sender->oldAttributes; foreach ($event->changedAttributes as $name => $value) { if( $oldAttributes[$name] == $value ) continue; !is_string( $value ) && $value = print_r($value, true); $desc .= $event->sender->getAttributeLabel($name) . '(' . $name . ') : ' . $value . '=>' . $event->sender->oldAttributes[$name] . ',
'; } $desc = substr($desc, 0, -5); $model = new AdminLogModel(); $class = $event->sender->className(); $idDes = ''; if (isset($event->sender->id)) { $idDes = '{{%ID%}} ' . $event->sender->id; } $model->description = '{{%ADMIN_USER%}} [ ' . Yii::$app->getUser()->getIdentity()->username . ' ] {{%BY%}} ' . $class . ' [ ' . $class::tableName() . ' ] ' . " {{%UPDATED%}} {$idDes} {{%RECORD%}}: " . $desc; $model->route = Yii::$app->controller->id . '/' . Yii::$app->controller->action->id; $model->user_id = Yii::$app->getUser()->id; $model->save(); } } /** * when delete a record from database, auto generate a log * * @param $event * @throws \Throwable */ public static function delete($event) { $desc = '
'; foreach ($event->sender->getAttributes() as $name => $value) { !is_string( $value ) && $value = print_r($value, true); $desc .= $event->sender->getAttributeLabel($name) . '(' . $name . ') => ' . $value . ',
'; } $desc = substr($desc, 0, -5); $model = new AdminLogModel(); $class = $event->sender->className(); $idDes = ''; if (isset($event->sender->id)) { $idDes = '{{%ID%}} ' . $event->sender->id; } $model->description = '{{%ADMIN_USER%}} [ ' . Yii::$app->getUser()->getIdentity()->username . ' ] {{%BY%}} ' . $class . ' [ ' . $class::tableName() . ' ] ' . " {{%DELETED%}} {$idDes} {{%RECORD%}}: " . $desc; $model->route = Yii::$app->controller->id . '/' . Yii::$app->controller->action->id; $model->user_id = Yii::$app->getUser()->id; $model->save(); } /** * custom log info * * @param CustomLog $event * @throws yii\base\ErrorException */ public static function custom(CustomLog $event) { $model = new AdminLogModel(); $model->description = $event->getDescription(); $model->route = Yii::$app->controller->id . '/' . Yii::$app->controller->action->id; $model->user_id = Yii::$app->getUser()->getId(); $model->save(); } }