CI框架

  > CI框架4 知识点,redirect的使用

CI框架4 知识点,redirect的使用

CI框架4的版本中redirect发生了很大的变化。

例如我们希望子类调用父类进行跳出的操作,很有可能,执行父类redirect的使用,是不进行的。

<?php
namespace Admin\Controllers;
class LoginController extends BaseController
{
	public function init()
	{
		$session = session();
		if( !isset($_SESSION['isLogin']) )
	    {
	    	echo "prepare jump url";
	 	 	return redirect()->to('http://xxx.com/admin.php/login');
	 	 	exit();
	    }	
	}

    

}

我们的子类集成此网关

<?php
namespace Admin\Controllers;
class Home extends LoginController
{
    public function __construct()
    {
        parent::init();
    }

    public function index()
    {
        $session = session();
        var_dump($_SESSION);
        echo "index admin";
    }

    public function logout()
    {
        var_dump($_SESSION);
        $this->session->destroy();
    }
}

这样执行构造函数的时候,是不可以跳出的。

如果希望跳出则需要

redirect()->to('http://xxx.cn/admin.php/login')->sendHeaders();

加上sendheaders来进行处理。

另外如果直接使用rediect,会默认为经过路由需要路由设置。

参考手册,应该加上return同时应用相关方法进行直接跳转

例如

return redirect()->to('http://xxxx.com/admin.php/login')

这点需要注意,跟之前的ci3,区别很大。


发布时间:2023-02-27,14:09:47

CI框架4的版本中redirect发生了很大的变化,注意新版本的异同。

作者:澎蠡

让学习成为一种习惯,让知识交流变成一种生活方式。