用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1311|回复: 6
收起左侧

[版本 3.x] 如何在load->view或者parser->parse之后,直接到输出类?

[复制链接]
发表于 2016-1-16 17:04:40 | 显示全部楼层 |阅读模式
在我的程序里,有一个全站都可以使用的函数,message($msg),作用是把$msg字符串变量以通知的形式展示。message函数调用了load->view()函数。

问题是:假设在我的user/info界面有个判断用户是否注册,未注册的话就提示,伪代码如下:
PHP复制代码
 
if(用户未注册)
{
message('用户未注册');
}
//剩余代码:用户注册后的操作
复制代码


但是这时候,调用message后确实将message模板展示出来了,但是剩余代码也接着执行,导致页面上出现了堆叠错误。
我知道可以用if...else...来实现,但是这样就会使程序复杂化,不利于管理。我曾经尝试在message函数的尾部加上exit();结果发现output都不执行了,页面返回为空白。

我想做到的效果是:在调用message后,直接load->view(message),将当前信息输出在页面,并且后续逻辑代码都不再执行。不知道大家有什么好主意么
发表于 2016-1-18 00:53:38 | 显示全部楼层
你在exit退出之前手动调用output的方法$this->output->_display();这样就可以了

评分

参与人数 1威望 +2 收起 理由
Closer + 2 很给力!

查看全部评分

发表于 2016-1-16 20:12:56 | 显示全部楼层
使用 return 重新導向頁面
 楼主| 发表于 2016-1-16 21:52:41 | 显示全部楼层
Closer 发表于 2016-1-16 20:12
使用 return 重新導向頁面

不是很明白,能否详细一点,谢谢。
发表于 2016-1-17 16:50:16 | 显示全部楼层
wx_s5pKlKNr 发表于 2016-1-16 21:52
不是很明白,能否详细一点,谢谢。

請參閱 : CI 手冊 - URL 輔助函數
記得先載入 $this->load->helper('url');
 楼主| 发表于 2016-2-1 10:14:32 | 显示全部楼层
Michael锐生 发表于 2016-1-18 00:53
你在exit退出之前手动调用output的方法$this->output->_display();这样就可以了

谢谢,这个方法是正确的。而且我阅读了下Codeigniter流程,并没有略过太多的东西。
发表于 2016-2-1 10:46:42 | 显示全部楼层
不要用 exit,用 return语句就可以了。
用了 exit 会导致 CI 后续的很多处理都无法进行。

本版积分规则