非常教程

Codeigniter 3参考手册

用户指南 | User guide: General

查看 | Views

视图只是一个网页或页面片段,如页眉,页脚,侧边栏等。实际上,如果您需要此类视图,视图可以灵活地嵌入到其他视图(其他视图等内)中层次结构。

视图从未直接调用,必须由控制器请记住,在MVC框架中,Controller充当交通警察,因此它负责获取特定的视图。如果您没有阅读控制器页在继续之前应该这样做。

使用您在控制器页面中创建的示例控制器,让我们添加一个视图。

创建视图

使用文本编辑器,创建一个名为blogview.php的文件,并将其放入其中:

<html>
<head>
        <title>My Blog</title>
</head>
<body>
        <h1>Welcome to my Blog!</h1>
</body>
</html>

然后将文件保存在申请/意见/目录。

加载视图

要加载特定的视图文件,您将使用以下方法:

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

其中名称是视图文件的名称。

那个。除非您使用的是.php以外的内容,否则不需要指定PHP文件扩展名。

现在,打开前面创建的名为Blog.php的控制器文件,用视图加载方法替换echo语句:

<?php
class Blog extends CI_Controller {

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

如果您使用您之前所做的URL访问您的站点,您应该会看到您的新视图。URL类似于以下内容:

example.com/index.php/blog/

加载多个视图

CodeIgniter将智能地处理$this->load->view()来自控制器内的多个呼叫。如果发生多次呼叫,它们将被附加在一起。例如,您可能希望拥有标题视图,菜单视图,内容视图和页脚视图。这可能看起来像这样:

<?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');
        }

}

在上面的示例中,我们使用的是“动态添加数据”,您将在下面看到这一点。

在子目录中存储视图

如果您喜欢这种类型的组织,也可以将视图文件存储在子目录中。这样做时,您将需要包含加载视图的目录名。例子:

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

向视图添加动态数据

数据从控制器传递到视图。列阵或者对象在视图加载方法的第二个参数中。下面是一个使用数组的示例:

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

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

下面是一个使用对象的示例:

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

如果使用对象,类变量将被转换为数组元素。

让我们用您的控制器文件试试。打开它,添加以下代码:

<?php
class Blog extends CI_Controller {

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

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

现在打开视图文件并将文本更改为与数据中的数组键对应的变量:

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

然后在您使用的URL加载页面,您应该会看到变量被替换。

创建循环

传递给视图文件的数据数组不限于简单变量。您可以传递多维数组,这些数组可以被循环以生成多个行。例如,如果您从数据库中提取数据,它通常以多维数组的形式出现。

下面是一个简单的例子。将此添加到控制器中:

<?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);
        }
}

现在打开视图文件并创建一个循环:

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

        <h3>My Todo List</h3>

        <ul>
        <?php foreach ($todo_list as $item):?>

                <li><?php echo $item;?></li>

        <?php endforeach;?>
        </ul>

</body>
</html>

你会注意到,在上面的例子中,我们使用PHP的替代语法。如果你不熟悉它,你可以在这里阅读。

将视图作为数据返回

有第三个可选参数可让您更改方法的行为,以便将数据作为字符串返回,而不是将其发送到浏览器。如果您想以某种方式处理数据,这可能很有用。如果将该参数设置为TRUE(布尔值),它将返回数据。默认行为是false,将其发送到您的浏览器。如果你想返回数据,记得把它分配给一个变量:

$string = $this->load->view('myfile', '', TRUE);
Codeigniter 3

CodeIgniter 是一个PHP MVC框架,特点是超轻量级、有数据加密、有灵活URI路由等。对于 PHP 程序员来说,它小巧但功能强大。

主页 https://codeigniter.com/
源码 https://github.com/bcit-ci/CodeIgniter
版本 3
发布版本 3.1.5