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发生了很大的变化,注意新版本的异同。
