CodeIgniter 的預設視圖載入過程需要重複執行在每個控制器中包含頁首和頁腳視圖的任務。當使用多個控制器和視圖時,這可能會變得乏味且耗時。
為了解決這個問題,可以建立一個自訂載入器類別來自動執行包含頁首和頁尾視圖的過程。這允許開發人員載入視圖,而無需明確呼叫每個元件的 load->view() 方法。
在 application/core 中建立一個名為 MY_Loader.php 的新檔案目錄。該檔案將擴展 CodeIgniter 的 CI_Loader 類別並新增一個新的 template() 方法。
<code class="php">// application/core/MY_Loader.php class MY_Loader extends CI_Loader { public function template($template_name, $vars = array(), $return = FALSE) { $content = $this->view('templates/header', $vars, $return); $content .= $this->view($template_name, $vars, $return); $content .= $this->view('templates/footer', $vars, $return); if ($return) { return $content; } } }</code>
在 template() 方法:
建立自訂載入器類別後,更新控制器中的建構子以載入擴充載入器:
<code class="php">class My_Controller extends CI_Controller { public function __construct() { parent::__construct(); $this->load = new MY_Loader(); } }</code>
現在,您可以使用template()方法載入視圖:
<code class="php">$this->load->template('body');</code>
這將自動載入頁眉、正文和頁腳視圖。您也可以根據需要將變數傳遞給視圖。
以上是如何自動將頁首和頁尾包含在 CodeIgniter 視圖中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!