使用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表,至於字段多少無所謂)。到這裏,添加多模塊就全都完成