没有登录会话,没有人可以访问 codeigniter 4 中的控制器

Without login session no one can access controller in codeigniter 4

我想将所有没有会话的用户定向到登录页面。

我在我的控制器中创建了一个构造函数。但它不起作用。这是我的代码:

 public function __construct(){
    $session = session();
    if($session->username != true){
        return redirect()->to('/login');
    }
}

你试过吗:

if($session["username"] != true){

怎么样

if(!isset($_SESSION["username"])) {

我解决了。在 Codeigniter 4 中,__construct 方法不起作用。这就是它不起作用的原因。而不是我使用 Codeigniter 4 过滤器重定向到登录页面。这是我的 Codeigniter 过滤器代码:

 class LoginFilter implements FilterInterface
{
    public function before(RequestInterface $request, $arguments = null)
    {
       if(!session()->username){
        return redirect()->to(base_url('login'));
       }
    }
}