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

创建视图


创建视图文件很简单,只需要建立后缀名为‘.php’的文件,

然后保存文件到 application/views/ 文件夹即可

当然,随着工程的大小,你有必要对很多的视图根据控制器进行归类,

然后分不同的文件夹存储:

例如: application/views/home  
表示定义的前台主视图

application/views/admin   表示定义的后台主视图

载入视图

一个视图就是一个网页,或是网页的部分,如头部,底部,侧边栏等等。事实上,如果你需要

这种层次类型,视图可以很灵活的嵌入到其他视图中。

视图从不直接调用,必须被一个控制器来调用。记住,在一个
MVC 框架中,控制器扮演着

交通警察的角色,那么,他有责任去取回某一特定的视图。如果你还没有阅读过控制器页面

的话,你应该事先阅读控制器页面。

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

使用下面的函数来载入一个视图文件:$this->load->view(‘name‘);

这里的原理是:

通过继承基类,然后调用load类,本身的类就继承了CI的超级对象
,将素有的类所谓了他的属性进行使用

难以理解的话,可以这样理解:

$this->load->view()的原理就是

CI_Loader 这个是 关于变量加载的类

$obj = New CI_Loader

$this->load =
$obj;(这个会自动实例化这个对象,放在CI_Controller下,)

$this->load->view();

name 便是你的视图文件的名字(.php
文件的扩展名(后缀名)没有必要专门写出)

载入多个视图


CodeIgniter 能智能的处理多个从控制器发起的视图载入函数调用
$this->load->view。

如果有多个调用,那么他们将会被合并到一起。例如,你可能希望有一个标题视图、

一个菜单视图、一个内容视图、和一个页脚视图。他们看起来应该是这样:

<?php

class Page extends
CI_Controller {

   function
index()
   {
      $data[‘page_title‘]
= ‘Your
title‘;
      $this->load->view(‘header‘);
      $this->load->view(‘menu‘);
      $this->load->view(‘content‘,
$data);  
//这里调用content模板的同时,将变量分配给了视图文件
      $this->load->view(‘footer‘);
   }

}
?>

用子文件夹存储视图

当你用文件夹来存储你的视图文件.. 载入视图时,必须加上子文件夹的名字.
示例如下:

$this->load->view(‘folder_name/file_name‘);

给视图添加动态数据


将控制器的数据添加到视图的时候,可以是任意的基本数据类型,和复合数据类型,对象或者数组都支持

<?php

class Page extends CI_Controller
{

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

}
?>

通过动态的将值给视图,然后在视图通过通过调用该数组的‘$+键名’进行调用

注意:这里的调用可能是大学所熟悉的smarty 和thinkphp有很大的不同。原来学到的引擎

在分配单个变量的时候可能是多次的调用assgin方法,这里不同,因为这里是调用模板的同时赋值给视图

你只能将所有需要的值通过数组然后给视图,因为这里一个视图只能调用一次,调用多次就会出现很多的

重复的页面

获取视图内容


view函数第三个可选参数可以改变函数的行为,让数据作为字符串返回而不是发送到浏览器。

如果想用其它方式对数据进一步处理,这样做很有用。如果将view第三个参数设置为true(布尔)

则函数返回数据。view函数缺省行为是 false, 将数据发送到浏览器。如果想返回数据,

记得将它赋到一个变量中:

$buffer = $this->load->view(‘blogview‘, $data, true);

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

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

时间: 2024-11-01 09:51:06

CI框架篇之视图篇--载入(1)的相关文章

php ci框架中载入css和js文件失败的原因及解决方法

在将html页面整合到ci框架里面的时候,载入css和js失败. 原因是ci框架是入口的框架 对框架中文件的全部请求都须要经过index.php处理完毕,当载入外部的css和js文件的时候要使 用base_url()函数处理外部的链接. 在控制器中须要先加载url相关的类 public function test() { $this->load->helper('url'); $this->load->view('admin/test'); } 在test.php的view视图中.

CI框架篇之模型篇--直接操作(2)

在CI里面对数据库的操作有两种形式,一种是直接通过最原始的sql语句操作 一种则是通过CI里面的AR模型进行操作.两种操作各有千秋,应当有机的结合 现在讲解第一种操作的方式: 装载数据路操作类后就能够使用最原始的sql语句了 这里避免每次都装载数据库操作类,可是在配置文件里面进行修改 application\config\autoload.php 路径下修改 //$autoload['libraries'] = array('database'); 打开后就能够    : 能够自动加载数据库连接

Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 前言 我们知道对于关系数据库,视图的出现可以在一定的情况下减少因要进行数据关联而带来的大量SQL语句,它可以让我们就像访问一张表一样的简单操作. 作为ORM来说,支持视图也是一项最基础的工作.然而大部份的ORM中,对视图没有特意去提供这个类,因为视图的SQ

Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作 前言 在V1.0中,新增了视图的映射.在以往的版本中,视图是当成”表“来操作的. 但是我们的视图通常只是为了方便查询而建的.而表支持写操作.会显的很不入调(当然MSSQL的视图也是支持写的,但是这里的视图映射是为了只读视图而来的) 先看下我DEMO中的上下文与视

Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表/视图缓存操作 TableCahceSet.ViewCahceSet 前言 在上篇中,我们学会了存储过程的关系映射,其中知道了存储过程需要使用:ProcSet作为操作的上下文,以及在Field特性上,我们知道了新的两个属性用来存储过程的参数输入输出. 在上篇末尾,提到了

Farseer.net轻量级开源框架 V1.x 入门篇:表的数据操作

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:视图实体类映射 前言 先跟大家抱歉下,教程迟迟没有更新,因为一个人的精力实在有限(借口?好吧,我认了). 想要Farseer.Net发展的更好,需要认真.客观解读群里朋友们的建议,实际上也确实是这样,有些思想.功能自己确实没想到(必境我自己所能接触的业务场景是非常有限的). 当然在考虑Farse

Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置及其它配置文件 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表的数据操作 前言 上文讲述了数据库配置及其它配置文件的使用,搭建好数据库的链接方式了,接下来就是数据库中的表与实体类的关联了(映射). 在V1.x中,新增了视图.存储过程的映射.在以往的解决方案中,视图是当成”表“来操作的. 但是我们的视图通常只是为了方便查询而建的.而表支持写操作

Django框架之第三篇模板语法

Django框架之第三篇模板语法(重要!!!) 一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: 在 Django 模板中遍历复杂数据结构的关键是句点字符  .(也就是点) views.py def index(request): name = "hello haiyan" i = 200 l = [11,22,33,44,55] d = {"name":&quo

自定义控件三部曲视图篇(三)——瀑布流容器WaterFallLayout实现

前言:只要在前行,梦想就不再遥远 系列文章: Android自定义控件三部曲文章索引:http://blog.csdn.net/harvic880925/article/details/50995268 前面两节讲解了有关ViewGroup的onMeasure.onLayout的知识,这节我们深入性地探讨一下,如何实现经常见到的瀑布流容器,本节将实现的效果图如下: 从效果图中可以看出这里要完成的几个功能: 1.图片随机添加 2.在添加图片时,总是将新图片插入到当前最短的列中 3.每个Item后,