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