<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                > 以下代碼只針對 V6.0 以上版本 ## 需求調研 近日收到求助需要優化文章模塊的url地址 優化前:/index/information/17.html 優化后:/17.html ## 需求分析 1、/index是應用的名稱,我們可以通過域名綁定應用的方式來隱藏 2、系統的每個模塊是獨立的表,如文章模塊和產品模塊的id可能存在重復所以這里需要做取舍 ## 思路 通過需求分析我們能明確,如果想得到`/17.html`這種`url`我們只能給一個模塊來做優化,如果多個模塊的話需要加以區分比如叫做`news_17.html`,`product_17.html`等。 我們需要通過url確定是哪個表的數據,這樣我們就能反推出當前的模型和表名稱,剩下的自然就好處理了。 ## 路由部分修改 1、只給其中一個模塊做優化,其他的放棄(以下代碼基于此) ``` // 這里我們匹配所有數字到Article控制器的infoArticle方法 Route::any('<id>$', 'Article/infoArticle')->pattern(['id' => '\d+']); ``` 2、多個模塊做優化 ~~~ Route::any('news_<id>$', 'Article/infoArticle')->pattern(['id' => '\d+']); Route::any('product_<id>$', 'Article/infoArticle')->pattern(['id' => '\d+']); ~~~ ## 控制器部分的修改 1、由于我們并沒有`Article`控制器,所以會調用默認的`Error`空控制器,我們在該控制器中添加新的方法(基本等同于復制一份`info`方法) ~~~ public function infoArticle(string $id) { // 獲取欄目ID $catId = getCateId(); // 當前模型ID $this->moduleId = Cate::where('id', '=', $catId)->value('module_id'); // 當前表名稱 $this->tableName = Module::where('id', '=', $this->moduleId)->value('table_name'); // 當前模型字段列表 $this->fields = Field::getFieldList($this->moduleId); if (empty($catId)) { $this->error('未找到對應欄目'); } // 獲取欄目信息 $cate = Cms::getCateInfo($catId); // 更新點擊數 Cms::addHits($id, $this->tableName); // 查找內容詳情 $info = Cms::getInfo($id, $this->tableName); // 跳轉 if (isset($info['url']) && !empty($info['url'])) { return redirect($info['url']); } // 當前地址 $info['url'] = getShowUrl($info); // tdk $tdk = Cms::getInfoTdk($info, $cate, $this->system); // 模板 $template = Cms::getInfoView($info, $cate, $this->tableName); $view = [ 'cate' => $cate, // 欄目信息 'fields' => $this->fields, // 字段列表 'info' => $info, // 詳情信息 'system' => $this->system, // 系統信息 'public' => $this->public, // 公共目錄 'title' => $tdk['title'], 'keywords' => $tdk['keywords'], 'description' => $tdk['description'], ]; View::assign($view); return View::fetch($template); } ~~~ ## 公共方法的修改 common.php 中修改以下兩個方法 ~~~ /*** * 獲取當前欄目ID * @return mixed */ function getCateId() { if (\think\facade\Request::has('cate')) { $result = (int)\think\facade\Request::param('cate'); } else { $result = \app\common\model\Cate::where('cate_folder', '=', \think\facade\Request::controller()) ->value('id'); if (!$result) { $article = \app\common\model\Article::find(request()['id']); if ($article) { $result = $article->cate_id; } } } return $result; } getShowUrl 需要根據具體情況做調整,具體做法就是根據模塊id做處理 ~~~
                  <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>

                              哎呀哎呀视频在线观看