【发布时间】:2014-06-08 01:10:08
【问题描述】:
我正在使用 codeigniter。在我的一个管理员控制器中,管理员登录后,我想创建一个开关来检查他的管理员级别。如果他的级别低于某个数字,他就无法查看某个页面。相反,将加载一个限制通知页面,然后该页面将停止加载。
function add_user() {
$this->set_admin_level(9);
// stuffs
}
private function set_admin_level($level){
if ($this->session->userdata('admin_level') < $level ) {
$this->load->view("admin/restriction");
exit();
}
}
我尝试了 exit() 和 die(),但它们都只是杀死了整个页面而没有显示任何内容。我知道我可以用 if 然后重定向方法来做到这一点,但我想知道我是否可以用以前的方式做到这一点。
【问题讨论】:
-
例外情况在这种情况下很有用。在 set_admin_level() 而不是 exit() 中抛出异常,然后使用 try { } catch() { } 在 add_user 中查找异常。未捕获的异常将退出。
-
如果你在 die 里面放一条消息呢?例如
die('Not authorized to see this section');应该显示该文本。在这种情况下,问题在于 exit 或 die 语句发生在模板渲染之前。 -
我不想在空白页上只显示错误消息。我还想同时加载页眉和页脚模板。
-
更新,我在这里找到了解决方案,将 exit() 替换为 die($this->output->get_output()); stackoverflow.com/questions/2618993/…
标签: php codeigniter exit