wx_s5pKlKNr 发表于 2016-1-16 17:04:40

如何在load->view或者parser->parse之后,直接到输出类?

在我的程序里,有一个全站都可以使用的函数,message($msg),作用是把$msg字符串变量以通知的形式展示。message函数调用了load->view()函数。

问题是:假设在我的user/info界面有个判断用户是否注册,未注册的话就提示,伪代码如下:

if(用户未注册)
{
message('用户未注册');
}
//剩余代码:用户注册后的操作

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

我想做到的效果是:在调用message后,直接load->view(message),将当前信息输出在页面,并且后续逻辑代码都不再执行。不知道大家有什么好主意么

Michael锐生 发表于 2016-1-18 00:53:38

你在exit退出之前手动调用output的方法$this->output->_display();这样就可以了

Closer 发表于 2016-1-16 20:12:56

使用 return 重新導向頁面

wx_s5pKlKNr 发表于 2016-1-16 21:52:41

Closer 发表于 2016-1-16 20:12
使用 return 重新導向頁面

不是很明白,能否详细一点,谢谢。

Closer 发表于 2016-1-17 16:50:16

wx_s5pKlKNr 发表于 2016-1-16 21:52
不是很明白,能否详细一点,谢谢。
請參閱 : CI 手冊 - URL 輔助函數
記得先載入 $this->load->helper('url');

wx_s5pKlKNr 发表于 2016-2-1 10:14:32

Michael锐生 发表于 2016-1-18 00:53
你在exit退出之前手动调用output的方法$this->output->_display();这样就可以了

谢谢,这个方法是正确的。而且我阅读了下Codeigniter流程,并没有略过太多的东西。

Hex 发表于 2016-2-1 10:46:42

不要用 exit,用 return语句就可以了。
用了 exit 会导致 CI 后续的很多处理都无法进行。
页: [1]
查看完整版本: 如何在load->view或者parser->parse之后,直接到输出类?