CodeIgniter 的 $this->load->view() 可多次呼叫,依序輸出多個視圖片段,自動拼接成完整頁面。常用於「版面佈局」:Header、Nav、Content、Footer 分離。
<?php
class PageController extends CI_Controller {
public function home() {
$data['page_title'] = "Welcome to jb51.net";
// 依序載入,輸出會自動串接
$this->load->view('page_header', $data);
$this->load->view('page_nav');
$this->load->view('page_content');
$this->load->view('page_footer');
}
}
?>
application/views/
├── page_header.php // <html><head><title>= $page_title ?></title></head><body>
├── page_nav.php // <nav>...</nav>
├── page_content.php // 主要內容
└── page_footer.php // </body></html>
第三參數設為 true 可讓 view() 回傳渲染後字串,而非直接輸出:
$html = $this->load->view('page_content', $data, true);
// 可進一步處理、快取、或傳給其他視圖
$this->load->view('layout', ['content' => $html]);
view() 呼叫會**依序輸出**,確保 HTML 結構正確(如 header 在前、footer 在後)。$page_title)需在每次呼叫時傳遞,或使用 $this->load->vars() 設定全域視圖變數。layout 視圖包裹 $content,而非多次輸出,結構更清晰。