我试图在用户尝试访问他没有权限的页面时显示(flash)消息。
我创建了一个加载视图的控制器:
function index()
{
// Check user is allowed to open this
if ($this->flexi_auth->is_privileged('Wizard'))
{
$this->load->view('portal/wizard/wizard_view');
}
else
{
// Set a custom error message.
$this->flexi_auth->set_error_message('Sorry, you are not allowed to view this!', TRUE);
$this->session->set_flashdata('message', $this->flexi_auth->get_messages());
redirect('auth_lite/portal');
}
}
如果用户没有向导权限,它将重定向到主页面(auth_lite / portal)并显示错误消息(您不被允许......)。
在我的auth_lite控制器中,我为门户网站功能设置了这个:
function portal()
{
if ($this->flexi_auth->is_logged_in())
{
// Get any status message that may have been set.
$this->data['message'] = $this->session->flashdata('message');
$this->load->view('portal_view');
}
else
{
redirect('auth/login');
}
}
在我的视图文件中,显示消息为:
<?php if (! empty($message)) { ?>
<div id="message">
<?php echo $message; ?>
</div>
<?php } ?>
但是,flash消息没有按预期显示。我已阅读文档,但我不确定我做错了什么。
感谢您的帮助!
答案 0 :(得分:1)
从auth_lite控制器中删除以下行
$this->data['message'] = $this->session->flashdata('message');
并更改视图中的错误消息
<?php if($this->session->flashdata('message')) { ?>
<div id="message">
<?php echo $this->session->flashdata('message'); ?>
</div>
<?php } ?>