YII2.0多模块配置

使用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多模块配置_第1张图片
我们点击Module Generator,访问生成模块页面如下:
YII2.0多模块配置_第2张图片
我们填写下模块的类,模块id如图:
YII2.0多模块配置_第3张图片
填写好生成如图:
YII2.0多模块配置_第4张图片
然后把画红圈的地方复制,配置到yii2.0的配置文件里面modules数组里面,如下:

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

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

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

/**
 * 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表,至于字段多少无所谓)。到这里,添加多模块就全都完成

你可能感兴趣的:(PHP,Yii2.0框架,yii,模块化)