Search code examples
phphttp-redirectcodeigniter-4

codeigniter4 redirect not working outside index function


I tried various type of redirect function but none of them are working. I am simply creating one function where I testing the session availability and based on that redirect will work. But when session_check function is getting called only text part Iam getting and redirect is not working. I tried to, route, site_url but nothing works.

<?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();
}

}


Solution

  • Finally I tried the below mentioned code and it's working for me, any further improvement is highly appreciated.

    Controller Home Function:

    <?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{}
    
    }