gpt4 book ai didi

php - Yii2:如何记录每个请求的 Controller 和操作ID?

转载 作者:行者123 更新时间:2023-12-03 01:03:27 25 4
gpt4 key购买 nike

我试图通过相同的代码记录每个 Controller 的操作:

public function afterAction($action, $result)
{
\Yii::$app->logger->write(0, $action->controller->id, $action->id);
return parent::afterAction($action, $result);
}

但是,我不想在每个 Controller 上重新声明此方法,并且我不想使用某些具有相同方法的 BaseController。我知道,base/Controller 有 AfterAction 事件,但是如何使用他的事件处理程序记录 Controller 操作?

最佳答案

您可以创建 Class-Level Event Handlerboostrap像这样的过程(最有可能在 web.php 配置文件中,其中包含 configuration for the application 对象):

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

关于php - Yii2:如何记录每个请求的 Controller 和操作ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36405363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com