<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ? 環境 基于 Yii2 高級模板 ? 前言 高級模板默認將前后臺分離:frontend 前臺應用 和 backend 后臺應用,在使用時我們需要為這兩個應用分別綁定域名,例如:frontend.domain.com,backend.domain.com 在我們常規的項目開發中,這種前后臺獨立分離的方式可能導致一些潛在的問題,最明顯的問題比如: 1.在后臺 backend 上傳圖片后(例如:/uploads/pic01.jpg),前臺 frontend 無法直接訪問通過 /uploads/pic01.jpg 這樣的相對路徑訪問,因為前后臺的域名是不一樣的。 2.在后臺的 Kindeditor 富文本框中添加了一些圖片或附件(例如:/uploads/img01.jpg),那么前臺 frontend 也無法直接訪問通過 /uploads/img01.jpg 這樣的相對路徑訪問,也是因為前后臺的域名是不一樣的。 3.... 當然你可能有很多解決方案,比如前臺圖片顯示是增加后臺的域名、服務器端設置 alias 訪問 /uploads、使用類似阿里云OSS對象存儲等等。 但是這些修改真的挺麻煩,我就開發一個小項目,我就想后臺上傳了就前臺直接能訪問,完全不想弄那么繁瑣的配置,而 Yii2 的模塊 Modules 功能就能很好的解決這個問題。 ? Yii2 模塊介紹 關于 Yii2 的模塊(Modules),你可以參閱 官方手冊 進行了解。 其實高級模板中 frontend 和 backend 也可以理解為模塊,但是他們可以單獨部署(可以綁定獨立的域名),所以他們又是高級模塊(官方稱之為應用主體),是所有其它自定義模塊的根級別的父模塊。 Yii2 的模塊設計是可以無限嵌套的,但是默認安裝完后,每個 應用主體 下面只有一個主模塊,其 MVC 目錄結構直接位于應用的根目錄下。 利用 Yii2 的模塊可以嵌套功能,我們可以在 frontend 這個 應用主體 下創建兩個子模塊:index(前臺) 和 admin(后臺) ,這樣前臺和后臺都是在同一個域名下(frontend.domain.com),這樣就完美解決了文章開頭所講的問題了。 當然,因為后臺以 子模塊 的形式嵌入到 frontend 內了,那么系統自動創建 backend 就無用武之地。 ? Yii2 模塊代碼 假定 frontend 應用主體綁定的域名為 frontend.domain.com,同時我們需要在 frontend 下面新增 index 和 admin 兩個子模塊,操作如下: 1. 新建子模塊目錄 \frontend\modules\index \frontend\modules\index\views \frontend\modules\index\models \frontend\modules\index\controllers \frontend\modules\admin \frontend\modules\admin\views \frontend\modules\admin\models \frontend\modules\admin\controllers 2. 新建子模塊類 2.1 新建 index 子模塊對象文件 \frontend\modules\index\Module.php,內容如下: <?php namespace frontend\modules\index; class Module extends \yii\base\Module { public function init() { parent::init(); } } 這個文件內的 類 主要供 應用主體 實例化模塊對象。 2.2 新建 index 子模塊的默認控制器文件 \frontend\modules\index\controllers\SiteController.php,內容如下: <?php namespace frontend\modules\index\controllers; use yii\web\Controller; class SiteController extends Controller { public function actionIndex() { echo 'You Access <b>'.$this->module->id.'</b> Sub Module'; exit(); } } 子模塊 admin 也同樣按照以上方式創建文件,注意需要把 index 改 admin 3. 配置子模塊類 那 應用主體 如何知道它需要啟動哪些模塊呢?這個就需要我們將模塊的信息寫入到 應用主體 的配置文件里,編輯 /frontend/config/main.php,新增以下內容: 'modules' => [ 'index' => ['class'=>'frontend\modules\index\Module'], 'admin' => ['class'=>'frontend\modules\admin\Module'], ], 到此還沒完,因為你會發現現在訪問 frontend.domain.com,打開的頁面沒有任何變化,這說明了現在應用主體還是訪問之前默認的主模塊,那如何才能訪問到 index 和 admin 子模塊: http://frontend.domain.com/index.php?r=index/site/index http://frontend.domain.com/index.php?r=kernel/site/index 通過設置 URL 參數中的路由參數 r 即可,其格式為:r=[Module]/[Controller]/[Action] 4.調整子模塊配置 4.1 設置 frontend 應用主體 的默認子模塊 未設置前, Yii2 默認會直接訪問 frontend 應用主體 的主模塊,即 /frontend/controllers/SiteController;當然,我現在希望 Yii2 默認直接訪問 index 子模塊;編輯 /frontend/config/main.php,修改如下配置即可: # 設置默認的路由,格式:[Module]/[Controller]/[Action] # 以下配置可以在無路由參數的情況直接進入 index 子模塊的 SiteController::actionIndex 'defaultRoute' => 'index/site/index'; # 設置默認的控制器命名空間 # 以下配置可以省略 URL 中路由參數的 [Module] 數據 'controllerNamespace' => 'frontend\modules\index\controllers' 4.2 設置子模塊的默認布局 未設置前,frontend 應用主體 下的 子模塊 默認都直接調用主模塊的布局,即/frontend/views/layouts/main.php;明顯,這策略不適合多個子模塊,我們希望每個 子模塊 默認調用其自身根目錄下 views/layouts/main.php;編輯 子模塊 根目錄下的 Module.php,在 init() 函數內添加如下代碼: # 該成員變量未設置值時,將調用父模塊錄的布局目 # 該成員變量被設置值后,將調用當前模塊的布局目錄 $this->layout = 'main';
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看