阻止控制器执行

Jon*_*noB 2 php codeigniter

我有一个在MY_Controller中运行的acl.如果权限被拒绝,那么此刻,我只是做了一个redirect('denied')- 这是一个非常基本的控制器,它加载一个非常基本的视图,说"权限被拒绝".

但是,我想要做的仍然是加载最初请求的uri,但是加载'denied'视图而不是默认视图.

我可以在MY_Controller中执行此操作,并且被拒绝的视图加载正常.但是,这并不会阻止原始控制器/方法执行,因此我会加载两个视图.我也尝试exit;在加载被拒绝的视图后在MY_Controller中放置一个语句,但这是行不通的,因为输出不会在CI中触发.

是否可以通过pre_constructor_controller钩子来做到这一点?我无法找到阻止控制器执行的方法......

Bro*_*cha 9

您必须让控制器执行才能让所请求的URI加载.

检查ACL后MY_Controller,如果不允许,可以在denied那里加载视图,但在退出之前还需要做一件事.

$this->load->view('denied');
$this->output->_display();
exit();
Run Code Online (Sandbox Code Playgroud)