lixigame 发表于 2011-2-28 15:49:21

关于在$this->load->view后面用exit中断流程出错的问题

如题,在使用$this->load->view调用模板后如果希望用exit或者die中断流程,这将导致视图被中断加载,页面一片空白,而问题在于CI的载入视图是不中断流程的,如果在载入视图后还有流程的话会继续运行下去,这不知道是CI的BUG还是故意这样设置的

jeongee 发表于 2011-2-28 15:56:48

这个其实你去看下代码就是知道了,或者可以搜索 看 http://cn.php.net/ob_start

Hex 发表于 2011-2-28 16:10:58

不能在 load view 后 exit,只能使用 return,这是 CI 架构导致的。

lixigame 发表于 2011-2-28 16:32:05

谢谢楼上2位

skeay 发表于 2011-2-28 16:51:30

是的用EXIT刷新就白了;
再刷新就好了

lixigame 发表于 2011-3-16 10:22:17

用return有个问题啊,在构造函数中你即使return了他还是会去执行后面的代码,这样的话无法进行登陆检查之类的工作
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {

        function __construct()
        {
                parent::__construct();
                $this->load->helper('url');                        //为了使用绝对路径
                return 0;
        }

        function index()
        {
                $this->load->view('welcome_message');
        }
       
        function test(){
                echo '<br>test<br>';
        }
}
大家可以尝试下这段代码,用http://domain/index.php/welcome/test访问,是会显示<br>test<br>的

lixigame 发表于 2011-3-16 10:23:50

是的用EXIT刷新就白了;
再刷新就好了
skeay 发表于 2011-2-28 16:51 http://codeigniter.org.cn/forums/images/common/back.gif

这位仁兄的话不是太明白~

jeongee 发表于 2011-3-16 10:27:50

回复 7# lixigame


   你了解一下PHP的ob系列函数

yangyi 发表于 2012-8-31 11:50:13

{:soso_e113:}   太感谢了   哈哈   用   ob_start();    $this-load->view("");ob_end_flush();exit();这样上边的load->view就能执行了判断登录啥的 都用它
页: [1]
查看完整版本: 关于在$this->load->view后面用exit中断流程出错的问题