[学习*Codeigniter* 第三天]

[目录]

* [1.视图简介](#1)

* [2.加载视图](#2)

* [3.加载多个视图](#3)

* [4.传递视图数据形式](#4)

* [5.控制器传递数据,视图显示数据](#5)

[视图简介]

> [什么是视图?]* 简单来说,一个视图其实就是一个Web页面,或者页面的一部分,像页头、页脚、侧边栏等。* 视图不是直接被调用的,它必须通过控制器来加载。* 在MVC框架里,控制器扮演着类似于交警的角色,它专门负责读取特定的视图。* 如果你还没有读过 控制器 页面,你应该先看下这个。[顶部](#top)

[加载视图]

> [加载方式1: 没有数据,加载静态html]```class Index extends Contrllor(){        public function index(){        $this->load->view('视图名');  // [不带扩展名,默认是php扩展名]    }}```> [加载方式2: 有数据,把数据放在一个数组中]*控制器代码 1*```class Index extends Contrllor(){    public function index(){        $str = 'Hello World!';        $data['str'] = $str;        $this->load->view('index', $data);    }}```*控制器代码 2*```class Index extends Controller{public function index(){        $data = array(            'title' => 'My Title',            'heading' => 'My Heading',            'message' => 'My Message'        );        $this->db->view('index', $data);    }}```[加载方式3: 在子目录存储视图]```$this->load->view('directory_name/file_name'); // 加载视图时需要包含子目录的名字```*视图代码*```// 输出data数组中键值str```[顶部](#top)

[加载多个视图]

>CodeIgniter 可以智能的处理在控制器中多次调用 $this->load->view() 方法。 如果出现了多次调用,视图会被合并到一起。例如,你可能希望有一个页头视图、 一个菜单视图,一个内容视图 以及 一个页脚视图。代码看起来应该这样:```?phpclass 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');    }}```[顶部](#top)

[传递视图数据形式]

* 形式1 以数组形式传递```$data = array(    'title' => 'My Title',    'heading' => 'My Heading',    'message' => 'My Message');$this->load->view('blogview', $data);```* 形式2 以对象形式传递```$data = new Someclass();$this->load->view('blogview', $data);```[顶部](#top)

[控制器传递数据,视图显示数据]

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

```[顶部](#top)

你可能感兴趣的:([学习*Codeigniter* 第三天])