codeigniter4 重定向在索引函数之外不起作用

codeigniter4 redirect not working outside index function

我尝试了各种类型的重定向功能,但其中 none 可以正常工作。我只是创建一个函数,我在其中测试会话可用性并基于该重定向将起作用。但是,当 session_check 函数被调用时,只有我正在获取的文本部分和重定向不起作用。我试过,路线,site_url 但没有任何效果。

<?php

namespace App\Controllers;
use CodeIgniter\HTTP\CLIRequest;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use App\Controllers\BaseController;

class Home extends BaseController
{
    public function session_check()
    {
        $session = session();
        if ($session->has('usernamesession'))
        { 
            echo 'yes';
            return redirect()->to('public/home');
        }
        else
        {
            echo 'NoA';
            return redirect()->to('/public/login111'); 
            //return redirect()->to(site_url("list-user"));
            //return redirect()->route("login");
            //return redirect()->back();
            //return $routes->addRedirect('home', 'login');
            echo 'NoB';
        }
    }

public function index()
{
    echo 'Home';
    $this->session_check();
}

}

请试试这个:

public function session_check()
{
    $session = session();
    if ($session->has('usernamesession'))
    { 
        return 'public/home';
    }
    else
    {
        return '/public/login111'; 
    }
}

public function index()
{
    echo 'Home';
    $url = $this->session_check();

    return redirect()->to($url);
}

在重定向方面,Codeigniter 在 v4 中不如在 v3 中友好。我高度怀疑这会解决您的问题。

最后我尝试了下面提到的代码并且它对我有用,非常感谢任何进一步的改进。

控制器主页功能:

<?php

namespace App\Controllers;
use App\Libraries\Cv;
use CodeIgniter\HTTP\CLIRequest;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use App\Controllers\BaseController;

class Home extends BaseController
{
    public function index()
    {
        $this->session_check();
        $data['top_header']=view('theme/top_header');
        $data['sidebar_menu']=view('theme/sidebar_menu');
        $data['body_content']=view('theme/body_content');
        $data['tab']=view('theme/tab');
        $data['footer']=view('theme/footer');
        return view('theme/index',$data);
    }
}
?>

BaseController.php

public function session_check()
{
    $this->session->set("usernamesession",'Naresh');
    
    if (!$this->session->has('usernamesession'))
    { 
        return $this->response->redirect(site_url('public/login'));
    }else{}

}