Yii2将函数应用于所有请求

Moj*_*aba 2 yii2 yii2-advanced-app

有没有办法将函数应用于Yii2中的所有请求和查询?

我想替换所有这些特定字符.

我正在使用Yii2高级应用程序

谢谢.

这是配置文件:

$config = [
    'language' => 'en',
    'components' => [
        'request' => [
            'cookieValidationKey' => 'something',
        ],
        'authManager' => [
            'class' => 'yii\rbac\DbManager',
            'defaultRoles' => ['guest'],
        ],
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
        ],
    ],
];

return $config;
Run Code Online (Sandbox Code Playgroud)

aro*_*hev 6

如果不在每个请求上扩展自定义代码,就可以像这样执行(将其添加到您的应用程序配置中):

return [        
    'on beforeRequest' => function () {
        if (!Yii::$app->get('user', false)) {
            return;
        }

        $user = User::getCurrent();
        if ($user) {
            Yii::$app->setTimeZone($user->time_zone);
        }
    },
    'on afterRequest' => function () {
        ...
    },
];
Run Code Online (Sandbox Code Playgroud)

取决于您何时需要执行代码(在请求之前或之后)使用'on beforeRequest''on afterRequest'相应地.