Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
340 views
in Technique[技术] by (71.8m points)

php - Calling a Controller function in another Controller in CodeIgniter

I have a controller "user" in my codeigniter application. This controller has a function called logged_user_only():

public function logged_user_only()
    {
        $is_logged = $this -> is_logged();
        if( $is_logged === FALSE)
        {
            redirect('user/login_form');
        }
    }

As this function calls another function called is_logged(), which just checks if the session is set, if yes it returns true, else returns false.

Now if i place this function in the begining of any function within same controller, it will check if the user is not logged, it will redirect to login_form otherwise continue. This works fine. For example,

public function show_home()
    {
        $this -> logged_user_only();
        $this->load->view('show_home_view');
    }

Now I would like to call this logged_user_only() function in a function of another controller to check if the user is logged in or not?

PS. If this can not be done, or is not recommended, where should i place this function to access in multiple controllers? Thanks.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Why not extend the controllers so the login method is within a MY controller (within the core folder of your application) and all your other controllers extend this. For example you could have:

class MY_Controller extends CI_Controller {
    public function is_logged()
    {
        //Your code here
    }
}

and your main controllers could then extend this as follows:

class Home_Controller extends MY_Controller {
    public function show_home()
    {
         if (!$this->is_logged()) {
           return false;
         }
    }
}

For further information visit: Creating Core System Classes

New link is here: https://www.codeigniter.com/user_guide/general/core_classes.html?highlight=core%20classes


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...