首页 > 解决方案 > CodeIgniter4 - 来自控制器的所有方法的前提条件

问题描述

我正在使用 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"); }

此前提条件检查用户是否已登录。

我如何将这个前提条件设置为来自控制器的所有方法,而无需重写来自Dashboardand的每个方法Profile

标签: phpcodeignitercodeigniter-4

解决方案


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

推荐阅读