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

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值