gpt4 book ai didi

php - 在 CodeIgniter 的另一个 Controller 中调用 Controller 函数

转载 作者:可可西里 更新时间:2023-10-31 22:19:09 24 4
gpt4 key购买 nike

我的 codeigniter 应用程序中有一个 Controller “用户”。该 Controller 有一个名为 logged_user_only() 的函数:

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

由于此函数调用另一个名为 is_logged() 的函数,该函数仅检查 session 是否已设置,如果是则返回 true,否则返回 false。

现在,如果我将此函数放在同一个 Controller 中任何函数的开头,它将检查用户是否未登录,它将重定向到 login_form,否则继续。这很好用。例如,

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

现在我想在另一个 Controller 的函数中调用这个 logged_user_only() 函数来检查用户是否登录?

附言。如果不能这样做,或者不推荐这样做,我应该把这个函数放在哪里才能在多个 Controller 中访问?谢谢。

最佳答案

为什么不扩展 Controller ,这样登录方法就在 MY Controller 中(在您的应用程序的核心文件夹中),而您的所有其他 Controller 都扩展了它。例如你可以:

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

然后您的主 Controller 可以按如下方式扩展它:

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

欲了解更多信息,请访问: Creating Core System Classes

新链接在这里: https://www.codeigniter.com/user_guide/general/core_classes.html?highlight=core%20classes

关于php - 在 CodeIgniter 的另一个 Controller 中调用 Controller 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6647112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com