CodeIgniter4 - 来自控制器的所有方法的前提条件
CodeIgniter4 - pre-condition for all methods from controller
我正在使用 CodeIgniter 4。
我有 2 个控制器:
<?php namespace App\Controllers;
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{...}
在这 2 个控制器中,我有一些方法表示路由 /dashboard
、/profile
、/profile/settings
等
在每种方法中我都有相同的预编码if(...){ return redirect()->route("login"); }
。
此先决条件检查用户是否已登录。
如何将此先决条件设置为来自控制器的所有方法,而不重写来自 Dashboard
和 Profile
的每个方法?
您可以 运行 通过 运行 在 __construct()
方法中对控制器的每个方法进行编码:-
class Auth_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
if ( ! $this->session->userdata('logged_in'))
{
redirect('login');
}
}
}
function __construct()
{
parent::__construct();
if ( ! $this->session->userdata('logged_in'))
{
redirect('login');
}
}
我正在使用 CodeIgniter 4。
我有 2 个控制器:
<?php namespace App\Controllers;
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{...}
在这 2 个控制器中,我有一些方法表示路由 /dashboard
、/profile
、/profile/settings
等
在每种方法中我都有相同的预编码if(...){ return redirect()->route("login"); }
。
此先决条件检查用户是否已登录。
如何将此先决条件设置为来自控制器的所有方法,而不重写来自 Dashboard
和 Profile
的每个方法?
您可以 运行 通过 运行 在 __construct()
方法中对控制器的每个方法进行编码:-
class Auth_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
if ( ! $this->session->userdata('logged_in'))
{
redirect('login');
}
}
}
function __construct()
{
parent::__construct();
if ( ! $this->session->userdata('logged_in'))
{
redirect('login');
}
}