首頁 >後端開發 >php教程 >如何在 CodeIgniter 中自動包含頁首和頁尾?

如何在 CodeIgniter 中自動包含頁首和頁尾?

Patricia Arquette
Patricia Arquette原創
2024-11-03 05:30:30838瀏覽

How to Automate Header and Footer Inclusion in CodeIgniter?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn