首頁  >  文章  >  後端開發  >  如何自動將頁首和頁尾包含在 CodeIgniter 視圖中?

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-03 00:08:30448瀏覽

How Can I Automate Header and Footer Inclusion in CodeIgniter Views?

在CodeIgniter 中自動執行頁首和頁尾

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() 方法:

  • 它將標頭視圖載入到 $ content 變數。
  • 然後將指定的視圖(例如正文)載入到 $content 中。
  • 最後,載入頁腳視圖並將其附加到 $content。
  • 如果$return設定為TRUE,則傳回合併的內容;否則,它顯示組合視圖。

控制器中的使用

建立自訂載入器類別後,更新控制器中的建構子以載入擴充載入器:

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

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