关于在$this->load->view后面用exit中断流程出错的问题
如题,在使用$this->load->view调用模板后如果希望用exit或者die中断流程,这将导致视图被中断加载,页面一片空白,而问题在于CI的载入视图是不中断流程的,如果在载入视图后还有流程的话会继续运行下去,这不知道是CI的BUG还是故意这样设置的 这个其实你去看下代码就是知道了,或者可以搜索 看 http://cn.php.net/ob_start 不能在 load view 后 exit,只能使用 return,这是 CI 架构导致的。 谢谢楼上2位 是的用EXIT刷新就白了;再刷新就好了 用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>的 是的用EXIT刷新就白了;
再刷新就好了
skeay 发表于 2011-2-28 16:51 http://codeigniter.org.cn/forums/images/common/back.gif
这位仁兄的话不是太明白~ 回复 7# lixigame
你了解一下PHP的ob系列函数 {:soso_e113:} 太感谢了 哈哈 用 ob_start(); $this-load->view("");ob_end_flush();exit();这样上边的load->view就能执行了判断登录啥的 都用它
页:
[1]