繼續(xù)對(duì)CodeIgniter的MVC框架進(jìn)行學(xué)習(xí),本文學(xué)習(xí)的MVC中的視圖View。視圖層是主要用來(lái)顯示內(nèi)容的框架,包括頭,尾等,主要是靜態(tài)的html骨架。前面一篇文章有了控制層,控制可以調(diào)用view視圖層進(jìn)行前端頁(yè)面的展示。
1.首先CI的視圖位置是在:application/views/下
2.視圖文件創(chuàng)建,默認(rèn)的可以創(chuàng)建.php視圖,可以使用其他擴(kuò)展名的視圖,比如html,tpl等。
比如創(chuàng)建上一篇文章的pages視圖,命名為pages.php,代碼
<html>
<head><title>
<?php echo $title;?>
</title>
</head><body>This is a View .
</body></html>
可以在視圖內(nèi)創(chuàng)建文件夾,方便管理。
3.訪問視圖,訪問圖是通過控制器來(lái)操作的,還是上一篇文章的控制器
當(dāng)url請(qǐng)求為www.anypoetry.com/index.php/pages 的時(shí)候會(huì)調(diào)用控制器pages,并調(diào)用index函數(shù),
那么我們定義控制器的index函數(shù)。
class Pages extends CI_controller{
function __contruct(){
parent::__contruct();
}
publiction index(){
$this->load->View('pages') //這里調(diào)用對(duì)應(yīng)的視圖
}
}
當(dāng)調(diào)用文件夾內(nèi)的視圖時(shí),比如 jy/pages 視圖
則調(diào)用時(shí)加上文件夾即可
$this->load->View('jy/pages');
當(dāng)使用其他后綴的視圖時(shí),則要加上視圖的后綴名
比如pages.tpl
$this->load->view("pages.tpp");
4.給視圖view傳遞數(shù)據(jù)。傳遞的數(shù)據(jù)是數(shù)組格式。
比如
$data['title']='This is View show';
$data['content']='This is view content';
傳遞方法
$this->load->view("pages",$data);
這樣就將$data數(shù)組傳遞個(gè)pages。
在 pages 的view頁(yè)面中可以直接使用
<html>
<head><title>
<?php echo $title;?> 這里會(huì)輸出This isView Show
</title>
</head><body><?php echo $content;?>這里會(huì)輸出 This is view content
</body></html>
5.獲取視圖的返回字符串,即通過load->view
獲取view返回的字符串,不直接輸出
這個(gè)只是個(gè)load->view 的參數(shù),在最后面添加 布爾值 true。默認(rèn)為false,不做操作直接輸出
舉例,在控制器里面調(diào)用pages
$string = $this->load->view("pages",$data,true);
$string = $this->load->view("pages",true);
這樣頁(yè)面返回的內(nèi)容將給$string,而不會(huì)直接輸出。
更多信息請(qǐng)查看IT技術(shù)專欄