CodeIgniter4-来自控制器的所有方法的先决条件



我使用的是CodeIgniter 4。

我有两个控制器:

<?php namespace AppControllers;
class Dashboard extends BaseController{
public function index(){

//pre-condition - logged
if(!$this->session->has("email")){
//go to login
return redirect()->route("login");
}
return view("dashboard");
}
}
//---------------------
class Profile extends BaseController{...}

在这两个控制器中,我有一些表示路由/dashboard/profile/profile/settings等的方法。

在每种方法中,我都有相同的预编码if(...){ return redirect()->route("login"); }

此先决条件检查用户是否已登录。

如何在控制器的所有方法中都设置此前提条件,而不在DashboardProfile的每个方法中重写?

function __construct()
{
parent::__construct();
if ( ! $this->session->userdata('logged_in'))
{ 
redirect('login');
}
}

您可以在__construct()方法中运行控制器的每个方法中的代码:-

class Auth_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
if ( ! $this->session->userdata('logged_in'))
{ 
redirect('login');
}
}
}

相关内容

  • 没有找到相关文章