99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

CodeIgnite視圖

2018-08-07 12:53 更新

視圖

簡單來說,一個視圖其實(shí)就是一個 Web 頁面,或者頁面的一部分,像頁頭、頁腳、側(cè)邊欄等。 實(shí)際上,視圖可以很靈活的嵌在另一個視圖里,然后這個視圖再嵌在另一個視圖里,等等, 如果你想使用這種層次結(jié)構(gòu)的話,可以這樣做。

視圖不是直接被調(diào)用的,它必須通過 控制器 來加載。在 MVC 框架里, 控制器扮演著類似于交警的角色,它專門負(fù)責(zé)讀取特定的視圖。如果你還沒有讀過 控制器 頁面,你應(yīng)該先看下這個。

使用在 控制器 頁面中創(chuàng)建的控制器例子,讓我們再添加一個視圖。

創(chuàng)建視圖

使用你的文本編輯器,創(chuàng)建一個 blogview.php 文件,代碼如下:




    

Welcome to my Blog!

然后保存到你的 application/views/ 目錄下。

加載視圖

使用下面的方法來加載指定的視圖:

$this->load->view('name');

name 參數(shù)為你的視圖文件名。

注解
文件的擴(kuò)展名 .php 可以省略,除非你使用了其他的擴(kuò)展名。

現(xiàn)在,打開你之前創(chuàng)建的控制器文件 Blog.php ,然后將 echo 語句替換成 加載視圖的代碼:

<?php
class Blog extends CI_Controller {

    public function index()
    {
        $this->load->view('blogview');
    }
}

跟之前一樣,通過類似于下面的 URL 來訪問你的網(wǎng)站,你將看到新的頁面:

example.com/index.php/blog/

加載多個視圖

CodeIgniter 可以智能的處理在控制器中多次調(diào)用 $this->load->view() 方法。 如果出現(xiàn)了多次調(diào)用,視圖會被合并到一起。例如,你可能希望有一個頁頭視圖、 一個菜單視圖,一個內(nèi)容視圖 以及 一個頁腳視圖。代碼看起來應(yīng)該這樣:

<?php

class Page extends CI_Controller {

    public function index()
    {
        $data['page_title'] = 'Your title';
        $this->load->view('header');
        $this->load->view('menu');
        $this->load->view('content', $data);
        $this->load->view('footer');
    }

}

在上面的例子中,我們使用了 "添加動態(tài)數(shù)據(jù)" ,我們會在后面講到。

在子目錄中存儲視圖

如果你喜歡的話,你的視圖文件可以放到子目錄下組織存儲,當(dāng)你這樣做, 加載視圖時需要包含子目錄的名字,例如:

$this->load->view('directory_name/file_name');

向視圖添加動態(tài)數(shù)據(jù)

通過視圖加載方法的第二個參數(shù)可以從控制器中動態(tài)的向視圖傳入數(shù)據(jù), 這個參數(shù)可以是一個 數(shù)組 或者一個 對象 。這里是使用數(shù)組的例子:

$data = array(
    'title' => 'My Title',
    'heading' => 'My Heading',
    'message' => 'My Message'
);

$this->load->view('blogview', $data);

這里是使用對象的例子:

$data = new Someclass();
$this->load->view('blogview', $data);

注解
當(dāng)你使用對象時,對象中的變量會轉(zhuǎn)換為數(shù)組元素。

讓我們在你的控制器文件中嘗試一下,添加如下代碼:

<?php
class Blog extends CI_Controller {

    public function index()
    {
        $data['title'] = "My Real Title";
        $data['heading'] = "My Real Heading";

        $this->load->view('blogview', $data);
    }
}

再打開你的視圖文件,將文本修改為傳入的數(shù)組對應(yīng)的變量:



    <?php echo $title;?>


    

<?php echo $heading;?>

然后通過剛剛的 URL 重新加載頁面,你應(yīng)該可以看到變量被替換了。

使用循環(huán)

傳入視圖文件的數(shù)據(jù)不僅僅限制為普通的變量,你還可以傳入多維數(shù)組, 這樣你就可以在視圖中生成多行了。例如,如果你從數(shù)據(jù)庫中獲取數(shù)據(jù), 一般情況下數(shù)據(jù)都是一個多維數(shù)組。

這里是個簡單的例子,將它添加到你的控制器中:

<?php
class Blog extends CI_Controller {

    public function index()
    {
        $data['todo_list'] = array('Clean House', 'Call Mom', 'Run Errands');

        $data['title'] = "My Real Title";
        $data['heading'] = "My Real Heading";

        $this->load->view('blogview', $data);
    }
}

然后打開你的視圖文件,創(chuàng)建一個循環(huán):



    <?php echo $title;?>


    

<?php echo $heading;?>

My Todo List

    <?php foreach ($todo_list as $item):?>
  • <?php echo $item;?>
  • <?php endforeach;?>

注解
你會發(fā)現(xiàn)在上例中,我們使用了 PHP 的替代語法,如果你對其還不熟悉,可以閱讀 這里 。

將視圖作為數(shù)據(jù)返回

加載視圖方法有一個可選的第三個參數(shù)可以讓你修改它的默認(rèn)行為,它讓視圖作為字符串返回 而不是顯示到瀏覽器中,這在你想對視圖數(shù)據(jù)做某些處理時很有用。如果你將該參數(shù)設(shè)置為 TRUE , 該方法返回字符串,默認(rèn)情況下為 FALSE ,視圖將顯示到瀏覽器。如果你需要返回的數(shù)據(jù), 記住將它賦值給一個變量:

$string = $this->load->view('myfile', '', TRUE);
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號