Yii2 根据一个参数动态加载模块

技巧库 · forecho · 于 7年前 发布 · 9301 次阅读

场景

根据一个 URL 参数 code 去数据库查询然后再判断去访问哪个模块,Api 开发的时候可能会遇到。

实现

在配置文件 config/web.php 添加 on beforeRequest 事件,代码如下:

'on beforeRequest' => function ($event) {
    // 获取 Yii::$app->request->get('code') 然后使用 Model 去查询 
    // 跟写 action 一样的去写代码
    $v1 = (true) ? 'v1' : 'v2' ;
    Yii::configure(Yii::$app, [
            'modules' => [
                'v1' => [
                    'class' => "app\\modules\\{$v}\\Module",
                ],
            ],
        ]
    );
},
'components' => [

]

注意层级关系:跟 components 同级。

参考文档:https://github.com/yii2-chinesization/yii2-zh-cn/blob/master/guide-zh-CN/structure-applications.md#应用事件-


如果这篇文章对您有帮助,不妨微信小额赞助我一下,让我有动力继续写出高质量的教程。

共收到 0 条回复 Yii2事件 Module Yii2模块
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册