当我打开链接:http://localhost/3g/index/open/a/b?

from=timeline后,推断链接中的from是否等于timeline,假设等于timeline。那么就调用控制器内部的timeline方法,并加载timeline.php这个模板。

class Index extends CI_Controller {
function __construct() {
parent::__construct();
} public function open($a=0,$b=0) {
if ($_GET['from'] == 'timeline') {
$this -> timeline($a);
die;
} else {
$data['b'] = $b;
$this -> load -> view('3g/index/open',$data);
}
}
public function timeline($a=0) {
$data['a'] = $a;
$this -> load -> view('3g/index/timeline',$data);
}
}

此时输出的页面一片空白,并没有加载timeline.php这个模板。正确的做法是:

class Index extends CI_Controller {
function __construct() {
parent::__construct();
} public function open($a=0,$b=0) {
if ($_GET['from'] == 'timeline') {
$this -> timeline($a);
die;
} else {
$data['b'] = $b;
$this -> load -> view('3g/index/open',$data);
}
}
public function timeline($a=0) {
$data['a'] = $a;
echo $this -> load -> view('3g/index/timeline',$data,true);die;
}
}

获取视图内容

view函数第三个可选參数能够改变函数的行为,让数据作为字符串返回而不是发送到浏览器。假设想用其他方式对数据进一步处理,这样做非常实用。假设将view第三个參数设置为true(布尔)则函数返回数据。view函数缺省行为是 false, 将数据发送到浏览器。

假设想返回数据。记得将它赋到一个变量中:

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

样例:有些情况下。你并不想直接输出视图,而是只想得到视图的内容以备后用。

那么能够參考例如以下代码。

<?

php
class Blog extends CI_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方法中的第三个參数表示不输出视图,而仅仅是将结果返回给一个变量。

CI控制器调用内部方法并加载对应模板的做法的更多相关文章

  1. CI控制器调用内部方法并载入相应模板的做法

    当我打开链接:http://localhost/3g/index/open/a/b?from=timeline后,判断链接中的from是否等于timeline,如果等于timeline,那么就调用控制 ...

  2. 源码学习:一个express().get方法的加载与调用

    刚刚接触express,它的中间件确实把我搞得头晕.get的回调中要不要加next?不加载还会执行下一个中间件么?给get指定'/'路径是不是所有以'/'开头的访问在没有确切匹配时都能执行?use件又 ...

  3. 基于 Koa平台Node.js开发的KoaHub.js的控制器,模型,帮助方法自动加载

    koahub-loader koahub-loader是基于 Koa平台Node.js开发的KoaHub.js的koahub-loader控制器,模型,帮助方法自动加载 koahub loader I ...

  4. nodejs中 require 方法的加载规则

    require参数类型 http.fs.path等,原生模块 ./mod或../mod,相对路径的文件模块 /pathtomodule/mod,绝对路径的文件模块 mod,非原生模块的文件模块 在进 ...

  5. jquery加载页面的方法(页面加载完成就执行)

    jquery加载页面的方法(页面加载完成就执行),建议大家看下windows.onload与$(document).ready之间的区别. 1.$(function(){  $("#a&qu ...

  6. 使用getScript()方法异步加载并执行js文件

    使用getScript()方法异步加载并执行js文件 使用getScript()方法异步请求并执行服务器中的JavaScript格式的文件,它的调用格式如下所示: jQuery.getScript(u ...

  7. 使用getJSON()方法异步加载JSON格式数据

    使用getJSON()方法异步加载JSON格式数据 使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数组,并对获取的数据进行解析,显示在页面中,它的调用格式为: jQuery. ...

  8. [转]jquery加载页面的方法(页面加载完成就执行)

    jquery加载页面的方法(页面加载完成就执行),建议大家看下windows.onload与$(document).ready之间的区别.   1.$(function(){ $("#a&q ...

  9. java调用phantomjs采集ajax加载生成的网页

    java调用phantomjs采集ajax加载生成的网页 日前有采集需求,当我把所有的对应页面的链接都拿到手,准备开始根据链接去采集(写爬虫爬取)对应的终端页的时候,发觉用程序获取到的数据根本没有对应 ...

随机推荐

  1. POJ 2115 C Looooops(扩展欧几里得应用)

    题目地址:POJ 2115 水题. . 公式非常好推.最直接的公式就是a+n*c==b+m*2^k.然后能够变形为模线性方程的样子,就是 n*c+m*2^k==b-a.即求n*c==(b-a)mod( ...

  2. 5.单行函数,多行函数,字符函数,数字函数,日期函数,数据类型转换,数字和字符串转换,通用函数(case和decode)

     1  多行函数(理解:有多个输入,但仅仅输出1个结果) SQL>select count(*) from emp; COUNT(*) ------------- 14 B 字符函数Lowe ...

  3. biz处理dao事务处理层

    前言 正文 1.创建一个事物管理对象,该对象将连接对象绑定到当前线程 2.dao层的代码演示样例 3.biz层处理数据库的事务 总结

  4. linux脚本初体验

    前言 第一次写linux脚本,有点紧张. 1. 写一个寻找特定用户的脚本文件? #! /bin/sh who | grep $1 其中脚本第一行用来告诉kernel去使用/bin/sh来解释这个脚本: ...

  5. php 控制页面跳转

    <?php class UserAction extends Action{ public function index(){ echo "你好!"; $m=M('user' ...

  6. 与众不同 windows phone (17) - Graphic and Animation(画图和动画)

    原文:与众不同 windows phone (17) - Graphic and Animation(画图和动画) [索引页][源码下载] 与众不同 windows phone (17) - Grap ...

  7. 使MYSQL能被外部访问_xeyuu_新浪博客

    使MYSQL能被外部访问_xeyuu_新浪博客 使MYSQL能被外部访问 (

  8. python中的中文编码

    我现在编写python代码,有一些内容需要用中文编写,例如注释,一些其它的东西 默认python是不支持中文的,包括两个方面不支持,一是文件编码默认是ansi的,二是虚拟机运行解析脚本时也是非utf的 ...

  9. Windows XP环境下 搭建Android NDK环境

    搭建Android NDK环境 Windows XP环境下 1 一些下载 ① NDK r7:http://developer.android.com/sdk/ndk/index.html ② cygw ...

  10. 从源代码角度分析ViewStub 疑问与原理

    一.提出疑问     ViewStub比較简单.之前文章都提及到<Android 性能优化 三 布局优化ViewStub标签的使用>.可是在使用过程中有一个疑惑,究竟是ViewStub上设 ...