亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將每個操作記錄到數據庫 Yii2

將每個操作記錄到數據庫 Yii2

PHP
繁星點點滴滴 2022-09-17 22:26:05
我想將CRUD操作或任何其他活動(例如登錄成功/失敗的嘗試以及任何用戶帳戶創建/刪除)存儲到我的數據庫中的表,即.TRASACTION_LOG_TABLE我寫了很多控制器和動作,所以我有任何有效的方法來做活動日志。我如何能夠為每個操作或多個控制器中的一組操作執行一個函數來調用該特定函數并向數據庫中添加一個條目。
查看完整描述

1 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

您正在尋找活動日志:


你可以在其中創建一個公共類和一個靜態方法,例如,


classname::setActivityLog(user_id,activity_msg,time);

并將此代碼放入您編寫的每個操作中。例如,操作更新、操作刪除等。


you can get the `user_id` from `Yii::app()->user->id`

put you custom activity message like "User #user_id created new item" etc.

time you can get it while saving into database.

創建一個表和模型,就像活動日志一樣,這就是我在我的項目中所做的。


或者,但這將有限制,例如您無法提供自定義消息或自定義操作名稱


您可以在 boostrap 進程中創建一個類級事件處理程序,如下所示(最有可能在 Web 中.php配置文件,該文件保存應用程序對象的配置):


use yii\base\ActionEvent;

use yii\base\Controller;

use yii\base\Event;


$config = [

    ...

    'bootstrap'    => [

        ...

        function () {

            Event::on(Controller::class, Controller::EVENT_AFTER_ACTION, function (ActionEvent $event) {

                Yii::info('Called controller/action: ' . $event->action->id . '/' . $event->action->controller->id);

            });

        },

        ...

    ],

    ...

];


查看完整回答
反對 回復 2022-09-17
  • 1 回答
  • 0 關注
  • 116 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號