0

Codeigniter コントローラーの 1 つでこれを取得しました。しかし、他のコントローラーからアクセスできるようにしたいのですが、 $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');               
    }
}
4

1 に答える 1

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');


}
于 2013-02-07T10:26:25.987 に答える