2

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

但是,我想做的仍然是加载最初请求的 uri,但加载“拒绝”视图而不是默认视图。

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

是否可以通过 pre_constructor_controller 钩子来做到这一点?我想不出一种方法来阻止控制器执行......

4

1 回答 1

9

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

签入 ACL 后MY_Controller,如果不允许,则可以在此处加载denied视图,但在退出之前还需要做一件事。

$this->load->view('denied');
$this->output->_display();
exit();
于 2012-05-01T14:33:42.897 回答