我在我的一个Codeigniter控制器中得到了它。但我希望其他控制器可以访问它,但我认为$ this关键字具有不同的含义,而它需要引用它加载到的控制器。
function checkSecurity($user, $page)
{
if($this->mod_backend->canUserAccessPage($user, $page))
{
$this->load->view('header');
$this->load->view($page, $data);
$this->load->view('footer');
}
else
{
$this->load->view('header');
$this->load->view('unauthorised', $data);
$this->load->view('footer');
}
}
答案 0 :(得分:2)
如果您需要一个方法可以访问您应用中的所有控制器,您可以在MY_Controller.php
文件中实现一个类,然后您的所有控制器都必须扩展此类而不是CI_Controller
。
例如在MY_Controller.php中
<?php
class My_Controller extends CI_Controller{
public function checkSecurity($user, $page)
{
if($this->mod_backend->canUserAccessPage($user, $page))
{
$this->load->view('header');
$this->load->view($page, $data);
$this->load->view('footer');
}
else
{
$this->load->view('header');
$this->load->view('unauthorised', $data);
$this->load->view('footer');
}
}
}
然后在你的控制器中你必须扩展这个类:
<?php
class Other_Controller extends My_Controller{
//Do the stuff
//You can call your function in every controller
$this->checkSecurity('my_user', 'my_page');
}