当我打开链接: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方法中的第三个参数表示不输出视图,而只是将结果返回给一个变量。

转载于:https://www.cnblogs.com/moqiang02/p/4061196.html

CI控制器调用内部方法并载入相应模板的做法相关推荐

  1. tp5怎么跨控制器调用别的方法

    以前tp3.2版本跨控制器调用方法的时候用的是A方法 即 $IndexController = A("index");     return $IndexController-&g ...

  2. 内部方法调用,事务不起作用的原因及解决办法

    在做业务开发时,遇到了一个事务不起作用的问题.事情是这样的,方法内部的定时任务调用了一个带事务的方法,失败后事务没有回滚.查阅资料后,问题得到解决,记录下来分享给大家. 场景 我在这里模拟一个场景,大 ...

  3. springboot 调用方法事物_SpringBoot 内部方法调用,事务不起作用的原因及解决办法...

    在做业务开发时,遇到了一个事务不起作用的问题.大概流程是这样的,方法内部的定时任务调用了一个带事务的方法,失败后事务没有回滚.查阅资料后,问题得到解决,记录下来分享给大家. 场景 我在这里模拟一个场景 ...

  4. 原生js调用json方法

    原文链接 Ajax基础 ajax:无刷新数据读取,读取服务器上的信息 HTTP请求方法: GET:用于获取数据,如浏览帖子 ajax.judgeXmlHttpRequest('get', 'index ...

  5. JavaScript文件中调用AngularJS内部方法或改变$scope变量

    需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定: 首先获取AngularJS application: 方法一:通过controll ...

  6. Spring AOP无法拦截内部方法调用-- expose-proxy=true用法

    假设一个接口里面有两个方法: package demo.long;public interface CustomerService { public void doSomething1(); publ ...

  7. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法

    Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...

  8. aop阻止方法运行_Spring AOP无法拦截内部方法调用

    假设一个接口里面有两个方法: package demo.long;public interfaceCustomerService {public voiddoSomething1();public v ...

  9. ThinkPHP跨控制器调用方法

    跨控制器调用方法 1. 先造对象,再调用里面的方法 $sc=new \Home\Controller\IndexController();  用绝对路径找 echo $sc->ShuChu(); ...

最新文章

  1. LLVM一些语法规则
  2. react中使用scss_我如何将CSS模块和SCSS集成到我的React应用程序中
  3. 对于有A[0…N]有序的数组,判断是否存在A[i]=I 如果存在的话返回Index,
  4. python中文软件-Python
  5. Windows电脑C盘老是报红
  6. 直播预告丨B2B 企业如何高效获客增长?
  7. 三菱a系列motion软体_合肥三菱FR-A840-07700-2
  8. phpword这个问题的产生中国扭曲
  9. 对象序列化与反序列化(二进制 byte[])
  10. 腾讯面试官这样问我二叉树,我刚好都会 | 原力计划
  11. 《城市轨道交通——产业关联理论与应用》读书笔记
  12. Oracle数据库出现“本地计算机上的OracleOraDB11g_homeTNSListener服务启动后停止.....”问题解决方案...
  13. oracle 后台执行sql,后台执行oracle sql脚本
  14. 华为云服务器配置教程
  15. 开源搜索引擎排名第一,Elasticearch是如何做到的?
  16. MATLAB如何提取曲线原始数据
  17. 隐马尔科夫模型(HMM)等文章记录
  18. 哪个PDF软件好用?这几款你们知道吗?
  19. “天空起重机”助力好奇号着陆盖尔撞击坑
  20. 后缀自动机入门/基本概念

热门文章

  1. CSS完美兼容IE6/IE7/FF的通用方法 ~!!!
  2. useful websites for constructing your own website
  3. 2021-02-22 【转载】什么是GCJ-02火星坐标系;为什么天地图没有偏移
  4. 【我的相册】北方的传统面艺
  5. GDAL源码剖析(一)
  6. Unity2D之Sprite动画相关
  7. (转)Managed DirectX +C# 开发(入门篇)(六)
  8. linux 编写sh文件,linux编写shell脚本程序one官方
  9. java ee 程序_第一个 JavaEE 应用程序 - JavaWeb 入门开发教程
  10. mysql 事务原子性_数据库事务原子性、一致性是怎样实现的?