CodeIgniter用户指南:视图

 

简而言之,一个视图就是一个网页,或是网页的部分,如头部,底部,侧边栏等等。事实上,如果你需要这种层次类型,视图可以很灵活的嵌入到其他视图中。

视图从不直接调用,必须被一个控制器来调用。记住,在一个 MVC 框架中,控制器扮演着交通警察的角色,那么,他有责任去取回某一特定的视图。如果你还没有阅读过控制器页面的话,你应该事先阅读控制器页面。

下面使用你在控制器页面已经创建过的示例控制器,让我们来给他添加个视图。

创建视图

使用你的文本编辑器,创建一个名为 blogview.php 的文件,写入以下代码:

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

然后保存文件到 application/views/ 文件夹。

载入视图

你必须使用下面的函数来载入一个视图文件:

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

上面的 name 便是你的视图文件的名字。注意:.php 文件的扩展名(后缀名)没有必要专门写出,除非你使用了其他的扩展名。

现在, 打开你先前写的名为 blog.php 控制器文件,并且使用视图载入函数替换echo段代码:

<?php class Blog extends Controller { function index() { $this->load->view('blogview'); } } ?>

如果你使用先前你用的 URL 浏览你的网站,你将会看到你的新视图. URL 与下面的类似:

example.com/index.php/blog/

载入多个视图

CodeIgniter 能智能的处理多个从控制器发起的视图载入函数调用 $this->load->view。如果有多个调用,那么他们将会被合并到一起。例如,你可能希望有一个标题视图、一个菜单视图、一个内容视图、和一个页脚视图。他们看起来应该是这样:

<?php

class Page extends Controller {

   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('folder_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);

当我们一次性载入多个视图的时候,你只需在第一个视图传入数据就可以了(hader视图显示title,content视图显示message),比如:


<?php

class Page extends Controller {

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

}
?>

注意:如果你使用一个对象,那么类变量将转换为数组元素。

好了,让我们用你的控制器试试。打开控制器并添加以下代码:

<?php class Blog extends Controller { 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 Controller { 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替代语法。如果你对这种语法不熟悉,可以在这里阅读。

获取视图内容

view函数第三个可选参数可以改变函数的行为,让数据作为字符串返回而不是发送到浏览器。如果想用其它方式对数据进一步处理,这样做很有用。如果将view第三个参数设置为true(布尔)则函数返回数据。view函数缺省行为是 false, 将数据发送到浏览器。如果想返回数据,记得将它赋到一个变量中:

$string = $this->load->view('myfile', '', true);

例子:有些情况下,你并不想直接输出视图,而是仅仅想得到视图的内容以备后用。那么可以参考如下代码。

<?php class Blog extends Controller { function index() { $data['todo_list'] = array('Clean House', 'Call Mom', 'Run Errands'); $data['title'] = "My Real Title"; $data['heading'] = "My Real Heading"; $buffer = $this->load->view('blogview', $data, true); } } ?>

view方法中的第三个参数表示不输出视图,而只是将结果返回给一个变量。

 

翻译贡献者: 34333432, Hex, ianyang, irini, lishen2, longjianghu, sydcurie, thankwsx, zhupeng
使用CodeIgniter进行用户注册和登录 在Web应用程序中,用户注册和登录是常见的功能。CodeIgniter是一个流行的PHP框架,提供了一种简单而强大的方式来构建Web应用程序。在本文中,我们将使用CodeIgniter框架来演示如何实现用户注册和登录功能。 阅读详情

相关推荐

CodeIgniter官方中文帮助文档详解

CodeIgniter是一个轻量级的PHP MVC框架,它被设计为一个快速、健壮、易于使用的开发工具。由于其小巧的体积、性能高和对第三方库的灵活兼容性,CodeIgniter深受企业级开发者的喜爱。CodeIgniter 提供了灵活的错误处理机制。你可以通过覆写中的方法来自定义错误处理逻辑。以下是自定义异常处理类的示例:// 自定义404页面显示逻辑// 其他自定义异常处理方法...在此类中,你可以编写代码来记录错误、发送错误通知或者进行其他自定义操作。

weixin_30632267的博客 1028

CI框架传递数组到视图View层

视图是用户用户能看到你的网站的所有。 他们使用一个统一的接口, 而且可以根据需要进行修改。 MVC 的好处之一是你分开了表示层和逻辑层, 一切都显得很干净。视图实际上是一组包含有你的内容的HTML结构。结构中有各种元素,如颜色,字体,文字布局等; 不过视图不关心这些,它要做的只是取来内容,显示出来。 一般我们在控制器中这样定义:   function index() { $data...

tiandiqing的专栏 849

安卓设备安全相关技术

当前安卓设备使用的加密方案是基于Soc中一块可写入的rom实现,称为熔丝,其结果不可逆。 1、secureboot 2、AVB(Android Verify Boot) 3、dm-verity(device mapper) 4、keymaster 5、crypto 6、rpmb(replay private memory block) 7、TEE(Trust execute environment) 8、SELinux .........

weixin_43797328的博客 4837

CodeIgniter 视图篇

什么是视图 简单来说,一个视图其实就是一个 Web 页面,或者页面的一部分,像页头、页脚、侧边栏等。 实际上,视图可以很灵活的嵌在另一个视图里,然后这个视图再嵌在另一个视图里,等等, 如果你想使用这种层次结构的话,可以这样做。 视图不是直接被调用的,它必须通过 控制器 来加载。在 MVC 框架里, 控制器扮演着类似于交警的角色,它专门负责读取特定的视图。 – ...

weixin_30571465的博客 294

双层优化入门(1)—基本原理与求解方法(附matlab代码)

双层优化问题(Bilevel Programming Problems),也被称为双层规划,最早由Stackelberg与1934年在经济学相关研究中提出,因此也被称为Stackelberg问题。双层规划问题一般具有层次性、独立性、冲突性、优先性和自主性等特点。 本文介绍了双层优化的原理与求解方法,并提供了相应的matlab代码供参考学习。

配电网和matlab的博客 5万+

Python自动化:3分钟搞定微信收藏链接批量导出到TXT(附完整代码)

本文介绍如何使用Python自动化工具在3分钟内将微信收藏链接批量导出到TXT文件。通过模拟人类操作和OCR技术,脚本高效处理大量链接,显著提升工作效率,并附有完整代码和实战避坑指南。

weixin_29062671的博客 628

CodeIgniter框架之视图(可以在视图中直接访问超级对象的)

控制器代码:&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');class User extends CI_Controller {    public function index()    {        $array = array(            array('id'=&gt;1...

森森 901

【SABRE 3D, SABRE 3DxT,LAM设备】2025年9月10日

前文:SABRE 3D系列机台简介本章节详细阐述了在维护期间锁定电气、机械、热力学及重力组件以及化学管线输入的锁定操作流程,旨在降低人员受伤风险。p42~p55。

weixin_46735260的博客 1612

[PHP]在CodeIgniter中如何利用CSS创建视图

1、首先,我们需要三个步骤: 编写一个视图页面 编写一个样式表 更新我们的config文件以指定样式表在哪里 在这三点做完之后,我们需要更新控制器接受从URL传来的参数,把变量传给视图。 首先,让我们重新设计视图并把它保存到如下路径:system/application/views/test_view.php WHY's Test Page "> "> 它

汪海的实验室 3140

多标签图像分类:标签依赖关系建模的最新论文解读与实战应用

多标签图像分类:标签依赖关系建模的最新论文解读与实战应用 ,人工智能,计算机视觉,大模型,AI,本文解读了最新相关论文,包括基于图神经网络(GCN)的ML-GCN方法,通过构建标签相关矩阵建模依赖关系;区域潜在语义依赖的RLSD模型,定位关键区域并利用RNN建模语义依赖;以及语义图表示学习的SSGRL框架,结合语义解耦与交互模块。通过实战应用,展示了基于PyTorch的ML-GCN模型实现,包括图像特征提取、标签依赖建模及训练评估流程,为多标签图像分类提供了有效解决方案。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 18万+

电子凸轮追剪算法深度解析:2500字图解+代码实战

工艺需求:在物料连续运动过程中完成精准切割核心矛盾:切割瞬间刀具与物料必须绝对同步传统方案:机械凸轮(结构复杂,调整困难)现代方案:电子凸轮(柔性可调,精度更高)

QQ_778132974的博客 1109

如何在CodeIgniter中加载视图

通过上述步骤,你可以在CodeIgniter中轻松地加载和显示视图。将视图与控制器分离有助于你组织代码,使其更易于管理和维护。同时,通过传递数据到视图,你可以实现动态内容的生成。

sheji888的专栏 587

把 SAP 配置当成一张地图:用 IMG 把实施、变更与治理串成一条清晰的路

摘要 SAP IMG(Implementation Guide)是SAP实施的核心导航体系,它将客户需求转化为系统配置,提供结构化路径和文档化支持。IMG不是简单的菜单树,而是包含业务落地路径、标准化配置活动和文档化知识的实施语言。通过三种视图(Reference、Enterprise、Project)解决不同管理问题,其中Project IMG尤其重要,可管理项目范围、分工和进度。实际工作中应通过SPRO事务码访问IMG,将探索与执行分开管理。案例显示,跨国企业通过Project IMG可有效控制组织架构

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 228

CodeIgniter 源码解读之视图

视图 控制器及模型都讲完了,这篇,顺理成章的可以讲讲视图类,从此,MVC三剑客,都凑齐了。 接着模型中提到的例子,我在控制器里调用了视图 view 方法,并在 application/views 目录中新建了对应的视图文件。 我们现在研究一下视图加载的原理: <?php defined('BASEPATH') OR exit('No direct script access allowed'...

丿做个好人的博客 331

利用ADS建立MIPI D-PHY链路仿真流程

由于MIPI D-PHY的速率并不算高,因此,PCB设计难度通常不大,主要做好差分线的等长、阻抗的连续性、端口处的阻抗优化以及控制好走线的长度,拿到满意的结果还是较为轻松的,最后,建立流程化的仿真工程文件,可以保存为模板,方便日后的设计复用,非常方便。

一只豌豆象的博客 3571

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

[PHP]CodeIgniter学习手册(二):视图view的介绍与使用

简而言之,一个视图就是一个html网页,或是网页的部分,如头部,底部,侧边栏等等。 事实上,如果你需要这种层次类型,视图可以很灵活的嵌入到其他视图中。 视图从不直接调用,必须被一个控制器来调用。记住,在一个 MVC 框架中,控制器扮演着交通警察的角色,那么,他有责任去取回某一特定的视图。 创建视图 使用你的文本编辑器,创建一个名为 blogview.php 的文件,写入以下代码

汪海的实验室 3657

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

php ci 视图,CodeIgniter 视图 view使用方法

简单来说,一个视图其实就是一个 Web 页面,或者页面的一部分,像页头、页脚、侧边栏等。 实际上,视图可以很灵活的嵌在另一个视图里,然后这个视图再嵌在另一个视图里,等等, 如果你想使用这种层次结构的话,可以这样做。视图不是直接被调用的,它必须通过控制器来加载。在 MVC 框架里, 控制器扮演着类似于交警的角色,它专门负责读取特定的视图。如果你还没有读过控制器页面,你应该先看下这个。使用在...

weixin_39687422的博客 330

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

[CI]CodeIgniter视图 & 模型 & 控制器

-------------------------------------------------------------------------------------------------------- 载入视图   $this->load->view('home/name');  //可以用子文件夹存储视图,默认视图文件以'.php'结尾 载入多个视图 ...

dilunzhuang0924的博客 274

php加载视图,php – 加载视图时CodeIgniter的意外行为

我有一个查看器帮助函数,可以在页脚/页眉旁边加载主要内容.当我为主内容视图中的变量共享相同名称的标头加载数组的键时,会发生错误/意外行为 – 为标题和主要内容加载相同的数组.我认为这是正常的,因为同样的$data数组也被发送到标题和主要内容(如前所述).因此变量自然会出现在两个视图中.但是,嗯,这不完全是那样的.我将数据发送到标题后取消设置$data变量,然后在我想将一些数据发送到主视图时重新创建...

weixin_36002897的博客 176

CI(Codeigniter)框架自定义视图文件位置

你想自定义view的文件位置,则需要了解CI框架如何加载view视图文件的。 $this->load->view(); 这行代码的原理是什么? 我们打开application/core/Loader.php,里面有一个这样的方法: public function add_package_path($path, $view_cascade = TRUE) ...

weixin_33877885的博客 304

CodeIgniter 用户指南

CodeIgniter 用户指南 版本 2.1.3 目录 转自:http://codeigniter.org.cn/user_guide/toc.html 基本信息 服务器要求 许可协议 变更记录 关于 CodeIgniter 安装 下载 CodeIgniter 安装指导 从老版本升级 疑难解答 介绍 开始 CodeIgniter ...

weixin_30908707的博客 143

网络语言系列&php系列【仅供参考】:如何在CodeIgniter中加载视图

如何在CodeIgniter中加载视图

weixin_54626591的博客 1085

CodeIgniter 用户指南 版本 1.7.2

CodeIgniter 用户指南 版本 1.7.2编辑文档、查看近期更改请 登录 或 注册  找回密码目录页 CodeIgniter 中国首页 › 用户指南首页 › 目录 搜索用户指南 

潇湘博客 1631

CodeWhale 如何配置 GitHub App,让 PR 审查以 bot 身份发布?

Codewhale 自带 PR 审查命令:`codewhale review --pr N` 会生成一份建议性(advisory)代码审查,加上 `--post`(或在 CI 中)会把审查发布到 GitHub。默认情况下审查以 CI 任务已有的 `github.token` 身份出现,也就是你个人账号;如果你希望审查以专用 bot 身份(例如 `codewhale-agent[bot]`)发布,就

gitblog_00088的博客 1083

CodeIgniter视图

视图是一个完整的网页或者网页的一部分,如头部、底部 视图文件保存在application/views/文件夹下面,可以创建子文件夹 视图文件可以用.php扩展名,也可以是其它任何类型的控制名,如果用php扩展名,载入视图的时候可以不指定后缀,如果是其它类型的扩展名,载入视图的时候,必须指定文件全名。视图在子文件夹的时候,载入时需要包含子文件路径。 在控制器中用如下语句载入视图blog:$th

zhhy__的专栏 554

codeigniter视图

怎么加载视图? 例如我们有一个视图在 application/views/welcome.php public function index() { $this->load->view('welcome'); } 视图可以在子目录中, 例如: application/views/html/welcome.php public function ...

weixin_30342827的博客 139
上一篇: CodeIgniter用户指南:模型
下一篇: 99%的人都不知道手机的隐藏功能
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值