2013-04-25 127 views
0

我正在CodeIgniter中编写一个Web应用程序,我试图应用用户激活。在CodeIgniter中的函数中使用die()

function is_active() { 
     $active_state = $this->my_model->check_active(); 
     if ($active_state == 'no') { 
      $this->load->view('activation_page'); 
      die(); 
     } 
    } 

上面的代码会产生一个空白页,如果我删除die();如果将激活页面打印出members_area

那么我该如何强制加载所请求的视图并退出?

+0

你不需要在所有 – 2013-04-25 09:39:57

+0

由于使用模具(),但这样它不会工作。 – Zim3r 2013-04-25 09:45:24

回答

1

显然你是不是if语句里面去,如果用户不活跃的意思,您加载激活页面。

你还没有别的,如果用户是活跃的,它将加载一个视图。

尝试:

if ($active_state == 'no') { 
    $this->load->view('activation_page'); 
} 
$this->load->view('members_area'); 

注意:您可能要恢复的,如果条件。看起来更合乎逻辑,以检查用户是否活动,否则回退到激活页面。

编辑:

请参阅此代码:http://paste.laravel.com/pfO

注2:是许多可能的解决方案。

+0

实际上,它确实进入if语句,因为如果我修改它死('错误消息');它会在我的if语句中从die()生成错误消息。问题是它不会尽快加载视图。谢谢 – Zim3r 2013-04-25 09:48:35

+0

你在哪里使用这个函数is_active()? – 2013-04-25 09:56:59

+0

在我的控制器下__construct – Zim3r 2013-04-25 09:58:32

1

尝试

if ($active_state == 'no') { 
    $this->load->view('activation_page'); 
    return false; 
} 
+0

谢谢,没有变化。 – Zim3r 2013-04-25 09:45:45

0

我会把你的if语句放到模块的控制器中而不是模型中。 你应该做检查,因为你可以围绕其他视图调用做if语句。这样它就不会加载其他您不想让未激活的用户看到的视图。

1

你应该如果条件都发挥正常

if ($active_state == 'no') { 
    $this->load->view('activation_page'); 
}else{ 
    $this->load->view('members_area'); 
} 
+0

我的确如你所说,但它仍然加载两个视图。谢谢 – Zim3r 2013-04-25 09:52:34

+0

@ Zim3r你可能正在加载其他视图你正在调用'is_active'其他视图 – 2013-04-25 09:55:22

+0

是的默认情况下,它应该去其他视图,但我使用__construct下,我认为它应该做什么是__construct下首先陈述。 – Zim3r 2013-04-25 10:01:31

相关问题