在CodeIgniter 中無縫合併頁眉和頁腳
需要在每個控制器中重複載入頁首和頁腳視圖可能會很乏味。為了解決這個問題,讓我們探索一個解決方案,該解決方案可以自動執行此過程並提供自訂這些常見元素的靈活性。
在 CodeIgniter 中,可以建立一個自訂載入器類別來實現此目的。透過重寫 MY_Loader.php 中的 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>
對於CodeIgniter 3.x,修改後的template() 方法將包含額外的elseif 語句:
<code class="php">// application/core/MY_Loader.php class MY_Loader extends CI_Loader { public function template($template_name, $vars = array(), $return = FALSE) { if($return): $content = $this->view('templates/header', $vars, $return); $content .= $this->view($template_name, $vars, $return); $content .= $this->view('templates/footer', $vars, $return); return $content; elseif: $this->view('templates/header', $vars); $this->view($template_name, $vars); $this->view('templates/footer', $vars); endif; } }</code>
使用此自訂載入程序,控制器可以簡單地載入所需的正文內容,而無需擔心頁首和頁腳視圖:
<code class="php">// controller $this->load->template('body');</code>
這種方法提供了靈活性,允許輕鬆自訂頁首和頁腳內容,而不會使控制器混亂。
以上是如何在 CodeIgniter 中自動包含頁首和頁尾?的詳細內容。更多資訊請關注PHP中文網其他相關文章!