什么是视图

简单来说,一个视图其实就是一个 Web 页面,或者页面的一部分,像页头、页脚、侧边栏等。 实际上,视图可以很灵活的嵌在另一个视图里,然后这个视图再嵌在另一个视图里,等等, 如果你想使用这种层次结构的话,可以这样做。

视图不是直接被调用的,它必须通过 控制器 来加载。在 MVC 框架里, 控制器扮演着类似于交警的角色,它专门负责读取特定的视图。 – 来自ci3.x官方文档

怎么加载视图?

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

怎么向视图传递动态变量

我们目前有welcome.php这个视图, 现在我们给它的代码是

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

在渲染视图时怎么传递变量

public function index()
{
$data['title'] = '你好, 欢迎';
$data['string'] = '我是剑齿虎, 很高兴认识你!';
//view的参数2可以向视图传递数组/对象
$this->load->view('welcome', $data);
}

返回视图数据

public function index()
{
$data['title'] = '你好, 欢迎';
$data['string'] = '我是剑齿虎, 很高兴认识你!';
//view的参数3为一个bool类型, 默认为false. 提供true将返回渲染后的视图数据, 你需要用一个变量来接收它!
$template = $this->load->view('welcome', $data, true); var_dump($template);
}

视图的继承 (模版引擎? 没有这样的东西)

在网站项目中, 模版的重用比较多(废话). 比如一个网页一般是由”头 主体 侧栏 菜单 尾部”构成的. 因此为避免重复造轮子. 模版继承/视图引入拼接的存在是非常有意义的.

仔细看了看, 好像ci没有模版继承这样的东西. 唯一一个解决方案就是”视图拼接”. 引入多个视图合并

$this->load->view('header', $data);
$this->load->view('menu');
$this->load->view('content', $content);
$this->load->view('sidebar');
$this->load->view('footer');
//.....

如何在视图中加载其他视图(include)?

需求: 你的 welcome.php 视图, 需要引入一个 side.php 的视图

<html>
<head>
<title>视图加载视图</title>
</head>
<body>
<?php $this->load->view('side'); ?>
</body>
</html>

本文作为笔记备用

目前在学ci框架, 官方虽然有中文文档. 但有些地方解释比较模糊. 弄的我这样的新手容易搞不明白.

代码手写, 可能会有点小问题. 大体就是这个意思

CodeIgniter 视图篇的更多相关文章

  1. Android应用性能优化系列视图篇——隐藏在资源图片中的内存杀手

    图片加载性能优化永远是Android领域中一个无法绕过的话题,经过数年的发展,涌现了很多成熟的图片加载开源库,比如Fresco.Picasso.UIL等等,使得图片加载不再是一个头疼的问题,并且大幅降 ...

  2. MySQL之视图篇

    MySQL之视图篇 文章目录 MySQL之视图篇 1. 概述 1.1 为什么使用视图? 1.2 视图的理解 2. 创建视图 2.1 创建单表视图 2.2 针对于多表 2.3 基于视图创建视图 3. 查 ...

  3. 微信支付JSAPI模式及退款CodeIgniter集成篇

    微信支付接口文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1 首先你得知道这个jsapi是不能离开微信进行调用支付的,明白 ...

  4. 探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  5. ASP.NET MVC学习之视图篇(1)

    一.前言 不知道还有多少读者从第一篇开始一直学习到如今,笔者也会一直坚持将ASP.NET MVC的学习完美的结束掉,然后开始写如何配合其他框架使用ASP.NET MVC的随笔.当然笔者后面的随笔如果没 ...

  6. CI框架篇之视图篇--载入(1)

    创建视图 创建视图文件很简单,只需要建立后缀名为‘.php’的文件, 然后保存文件到 application/views/ 文件夹即可 当然,随着工程的大小,你有必要对很多的视图根据控制器进行归类, ...

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

    ---------------------------------------------------------------------------------------------------- ...

  8. 自己定义控件三部曲视图篇(二)——FlowLayout自适应容器实现

    前言:我最大的梦想,就是有一天.等老了坐在摇椅上回望一生,有故事给孩子们讲--. 相关文章: <Android自己定义控件三部曲文章索引>:http://blog.csdn.net/har ...

  9. 探索ASP.NET MVC5系列之~~~2.视图篇(上)---包含XSS防御和异步分部视图的处理

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  10. 微信支付Native扫码支付模式二之CodeIgniter集成篇

    CI:3.0.5 微信支付API类库来自:https://github.com/zhangv/wechat-pay 请先看一眼官方场景及支付时序图:https://pay.weixin.qq.com/ ...

随机推荐

  1. 2023 5.14 虚拟环境安装Linux

    1.安装配置VM虚拟机 vmare workstation 虚拟机是一款桌面计算机虚拟软件 让用户能够在单一主机上同事运行多个操作系统 1.每个虚拟操作系统的硬盘与数据都是独立 2.多台虚拟机可以构建 ...

  2. 代码随想录算法训练营Day30 回溯算法| 332.重新安排行程 51. N皇后 37. 解数独 总结

    代码随想录算法训练营 332.重新安排行程 题目链接:332.重新安排行程 给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划 ...

  3. Galaxy Project | 一些尝试与思考

    很久都没有更新推文了,脑壳羞涩,快码不出字的节奏! 最近在尝试内部 Galaxy 一些新工具的开发和 Galaxy 核心版本的升级测试,发现一些问题,简单记录和聊一下吧. 一些尝试 对于在线的 web ...

  4. 如何判断Keil MDK ARM中已经破解?如何判断Keil MDK ARM中已经安装了相应的器件库?如何判断CubeMX的器件库已经安装成功?

    如何判断CubeMX的器件库已经安装成功?请对照下图 如何判断Keil MDK ARM中已经安装了相应的器件库?请看下图 如何判断CubeMX的器件库已经安装成功?请对照下图

  5. 经纬度坐标为中心点生成米距离长度半径的圆形面,含java js源码+在线绘制,代码简单零依赖

    目录 java版源码 js版源码 在线绘制预览效果 关于计算的精确度 前些时间在更新我的坐标边界查询工具的时候,需要用到经纬度坐标点的距离计算,和以坐标点为中心生成一个指定距离为半径的圆,搜了一下没有 ...

  6. 安装部署 Kubernetes 仪表板(Dashboard)

    简介 Kubernetes 仪表板(Dashboard)是基于网页的 Kubernetes 用户界面. 你可以使用仪表板: 展示了 Kubernetes 集群中的资源状态信息和所有报错信息. 把容器应 ...

  7. 13. 注解配置SpringMVC

    使用配置类和注解代替web.xml和SpringMVC配置文件的功能 13.1.创建初始化类,代替web.xml 在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.Se ...

  8. Paimon读取流程

    查询模式 先来看看官网关于Paimon查询模式的说明 可以看到查询模式围绕snapshot展开, 而snapshot分了两种一种是Last compact snapshot和 last snapsho ...

  9. Java判断一个数是不是质数

    判断一个数是不是质数 做这个题之前我们需要先进行了解什么是质数 质数:只能被1和它本身整除的数 举一个简单的例子:数字5是不是质数呢? 我们可以进行分析: 解题思路:5可以分为1 2 3 4 5,我们 ...

  10. Linux系统运维之负载均衡Tengine

    一.介绍 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到 ...