CodeIgniter 視圖篇

什麼是視圖

簡單來講,一個視圖其實就是一個 Web 頁面,或者頁面的一部分,像頁頭、頁腳、側邊欄等。 實際上,視圖能夠很靈活的嵌在另外一個視圖裏,而後這個視圖再嵌在另外一個視圖裏,等等, 若是你想使用這種層次結構的話,能夠這樣作。php

視圖不是直接被調用的,它必須經過 控制器 來加載。在 MVC 框架裏, 控制器扮演着相似於交警的角色,它專門負責讀取特定的視圖。 – 來自ci3.x官方文檔html

怎麼加載視圖?

  • 例如咱們有一個視圖在 application/views/welcome.php
public function index() {
    $this->load->view('welcome');
}
  • 視圖能夠在子目錄中, 例如: application/views/html/welcome.php
public function index() {
    $this->load->view('html/welcome); }

怎麼向視圖傳遞動態變量

咱們目前有welcome.php這個視圖, 如今咱們給它的代碼是數組

<html>
<head>
    <title><?php echo $title; ?></title>
</head>
<body>
    <h1><?php echo $string; ?></h1>
</body>

在渲染視圖時怎麼傳遞變量app

public function index() {
    $data['title'] = '你好, 歡迎';
    $data['string'] = '我是劍齒虎, 很高興認識你!';
    //view的參數2能夠向視圖傳遞數組/對象
    $this->load->view('welcome', $data);
}

返回視圖數據

public function index() {
    $data['title'] = '你好, 歡迎';
    $data['string'] = '我是劍齒虎, 很高興認識你!';
    //view的參數3爲一個bool類型, 默認爲false. 提供true將返回渲染後的視圖數據, 你須要用一個變量來接收它!
    $template = $this->load->view('welcome', $data, true);

    var_dump($template);
}

視圖的繼承 (模版引擎? 沒有這樣的東西)

在網站項目中, 模版的重用比較多(廢話). 好比一個網頁通常是由」頭 主體 側欄 菜單 尾部」構成的. 所以爲避免重複造輪子. 模版繼承/視圖引入拼接的存在是很是有意義的. 框架

仔細看了看, 好像ci沒有模版繼承這樣的東西. 惟一一個解決方案就是」視圖拼接」. 引入多個視圖合併ide

$this->load->view('header', $data);
$this->load->view('menu');
$this->load->view('content', $content);
$this->load->view('sidebar');
$this->load->view('footer');
//.....

如何在視圖中加載其餘視圖(include)?

需求: 你的 welcome.php 視圖, 須要引入一個 side.php 的視圖網站

<html>
<head>
    <title>視圖加載視圖</title>
</head>
<body>
    <?php $this->load->view('side'); ?>
</body>
</html>

本文做爲筆記備用

目前在學ci框架, 官方雖然有中文文檔. 但有些地方解釋比較模糊. 弄的我這樣的新手容易搞不明白. this

代碼手寫, 可能會有點小問題. 大致就是這個意思spa

相關文章
相關標籤/搜索