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{}
}
我尝试了各种类型的重定向功能,但其中 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{}
}