<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                因為新版的控制器可以無需繼承任何的基礎類,因此在控制器中如何使用視圖取決于你怎么定義控制器。 >[danger] `V5.1.38+`版本開始,視圖渲染輸出的時候,如果你需要獲取渲染內容(比如用于生成HTML文件),需要改成: > ``` > $html = $this->fetch()->getContent(); > ``` ## 模板渲染 渲染模板最常用的是控制器類在繼承系統控制器基類(`\think\Controller`)后調用`fetch`方法,調用格式: >[info] #### fetch('[模板文件]'[,'模板變量(數組)']) 模板文件的寫法支持下面幾種: | 用法 | 描述 | |-----|-----| | 不帶任何參數 | 自動定位當前操作的模板文件 | | [模塊@][控制器/][操作] | 常用寫法,支持跨模塊 | | 完整的模板文件名 | 直接使用完整的模板文件名(包括模板后綴) | 下面是一個最典型的用法,不帶任何參數: ~~~ <?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { // 不帶任何參數 自動定位當前操作的模板文件 return $this->fetch(); } } ~~~ 表示系統會按照默認規則自動定位模板文件,其規則是: ~~~ 當前模塊/view/當前控制器名(小寫)/當前操作(小寫).html ~~~ >[danger] `V5.1.6+`版本開始,默認的模板文件名規則改為實際操作方法名的小寫+下劃線寫法。但可以配置`template.auto_rule`的值為2 恢復之前的全小寫規則。 如果有更改模板引擎的`view_depr`設置(假設 `'view_depr'=>'_'`)的話,則上面的自動定位規則變成: ~~~ 當前模塊/view/當前控制器(小寫)_當前操作(小寫).html ~~~ 如果沒有按照模板定義規則來定義模板文件(或者需要調用其他控制器下面的某個模板),可以使用: ~~~ // 指定模板輸出 return $this->fetch('edit'); ~~~ 表示調用當前控制器下面的edit模板 ~~~ return $this->fetch('member/read'); ~~~ 表示調用Member控制器下面的read模板。 跨模塊渲染模板 ~~~ return $this->fetch('admin@member/edit'); ~~~ 渲染輸出不需要寫模板文件的路徑和后綴。這里面的控制器和操作并不一定需要有實際對應的控制器和操作,只是一個目錄名稱和文件名稱而已,例如,你的項目里面可能根本沒有Public控制器,更沒有Public控制器的menu操作,但是一樣可以使用 ~~~ return $this->fetch('public/menu'); ~~~ 輸出這個模板文件。理解了這個,模板輸出就清晰了。 支持從視圖根目錄開始讀取模板,例如: ~~~ return $this->fetch('/menu'); ~~~ 表示讀取的模板是 ~~~ 當前模塊/view/menu.html ~~~ >[info] 如果需要調用視圖類(`think\View`)的其它方法,可以直接使用`$this->view` 對象。 如果你的模板文件位置比較特殊或者需要自定義模板文件的位置,可以采用下面的方式處理。 ~~~ return $this->fetch('../template/public/menu.html'); ~~~ 這種方式需要帶模板路徑和后綴指定一個完整的模板文件位置,這里的`../template/public`目錄是相對于當前項目入口文件位置。如果是其他的后綴文件,也支持直接輸出,例如: ~~~ return $this->fetch('../template/public/menu.tpl'); ~~~ 只要`../template/public/menu.tpl`是一個實際存在的模板文件。 >[danger] 要注意模板文件位置是相對于應用的入口文件,而不是模板目錄。 ## 助手函數 如果你的控制器并未繼承系統的控制器基類,則使用系統提供的助手函數`view`,可以完成相同的功能: ~~~ namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { // 渲染模板輸出 return view('hello', ['name' => 'thinkphp']); } } ~~~ 助手函數調用格式: >[info] #### view('[模板文件]'[,'模板變量(數組)']) 無論你是否繼承`think\Controller`類,助手函數都可以使用,也是最方便的一種。 ## 渲染內容 如果希望直接解析內容而不通過模板文件的話,可以使用`display`方法: ~~~ namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { // 直接渲染內容 $content = '{$name}-{$email}'; return $this->display($content, ['name' => 'thinkphp', 'email' => 'thinkphp@qq.com']); } } ~~~ 渲染的內容中一樣可以使用模板引擎的相關標簽。
                  <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>

                              哎呀哎呀视频在线观看