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界面如下:
我们点击Module Generator,访问生成模块页面如下:
我们填写下模块的类,模块id如图:
填写好生成如图:
然后把画红圈的地方复制,配置到yii2.0的配置文件里面modules数组里面,如下:
'modules' => [
//后台模块
'admin' => [
'class' => 'app\modules\admin',
],
//订单模块,刚新加的
'oindex' => [
'class' => 'app\order\oindex',
],
],
然后在yii2.0的目录下也能看见生成模块的模块目录:
现在我们可以访问下该模块试试,http://localhost/yiibasic/web/index.php?r=oindex/default/index
显示如图正常成功:
如果想访问模型还需要在该模块下新建一个模型文件夹,因为目前只有控制器文件夹,视图文件夹,这里我们在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表,至于字段多少无所谓)。到这里,添加多模块就全都完成