欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

YII2.0多模块配置

程序员文章站 2022-06-26 23:29:29
...
使用YII2.0的时候我们有时候可能需要这种需求,比如前台有自己的模块,后台有自己的模块,在细分的话用户也

有自己的模块,订单也有自己的模块。所以我们需要把功能模块化,这里就需要配置多模块了。yii2.0给我们提供gii可以很方便帮我们生成模块出来,接下来就来撸一把。先查看我们的gii是否有配置,打开yii2.0的配置文件查看gii配置如下:

$config['modules']['gii'] = [
        'class' => 'yii\gii\Module',
        //指定那些IP可以访问gii,如果注释掉所有ip都可以访问
        'allowedIPs' => ['127.0.0.1', '::1','192.168.1.41'],
    ];

输入127.0.1.1/项目/web/index.php?r=gii,我这里是http://localhost/yiibasic/web/index.php?r=gii即可访问gii界面如下:
YII2.0多模块配置
我们点击Module Generator,访问生成模块页面如下:
YII2.0多模块配置
我们填写下模块的类,模块id如图:
YII2.0多模块配置
填写好生成如图:
YII2.0多模块配置
然后把画红圈的地方复制,配置到yii2.0的配置文件里面modules数组里面,如下:

   'modules' => [
        //后台模块
        'admin' => [
            'class' => 'app\modules\admin',
        ],
        //订单模块,刚新加的
        'oindex' => [
            'class' => 'app\order\oindex',
        ],
    ],

然后在yii2.0的目录下也能看见生成模块的模块目录:
YII2.0多模块配置
现在我们可以访问下该模块试试,http://localhost/yiibasic/web/index.php?r=oindex/default/index
显示如图正常成功:
YII2.0多模块配置
如果想访问模型还需要在该模块下新建一个模型文件夹,因为目前只有控制器文件夹,视图文件夹,这里我们在order目录新建一个模型文件夹(models)和一个模型文件(Admin.php),模型文件内容如下:

<?php
//该模型的命名空间
namespace app\order\models;
use yii\db\ActiveRecord;
use yii;


/**
 * 后台登录模型
 */
class Admin extends ActiveRecord
{

    public static function tableName()
    {
        return "{{%admin}}";
    }

    public function getData()
    {
        return $this->find()->asArray()->all();
    }
}

我们在默认控制器写如下代码:

<?php

namespace app\order\controllers;

use yii\web\Controller;
use app\order\models\Admin;

/**
 * Default controller for the `oindex` module
 */
class DefaultController extends Controller
{
    /**
     * Renders the index view for the module
     * @return string
     */
    public function actionIndex()
    {
        $admin = new Admin();
        print_r($admin->getData());
    }
}

访问 http://localhost/yiibasic/web/index.php?r=oindex/default/index,即可显示该模型对于的数据表所有字段内容(注意:必须要配置好数据库,然后新建一张admin表,至于字段多少无所谓)。到这里,添加多模块就全都完成

相关标签: yii 模块化