注销后,我尝试重定向到主页。我尝试了几种方法,但没有重定向。
class User extends BaseController
{
public function __construct()
{
helper('url');
}
用于注销功能。我用了三种方式
redirect('/');
或者
header("Location:".base_url());
或者
route_to('/');
注销后,我尝试重定向到主页。我尝试了几种方法,但没有重定向。
class User extends BaseController
{
public function __construct()
{
helper('url');
}
用于注销功能。我用了三种方式
redirect('/');
或者
header("Location:".base_url());
或者
route_to('/');
根据 CI 4
采用
return redirect()->to('url');
如果您使用的是路线,请使用
return redirect()->route('named_route');
在 codeigniter 4 中,redirect()->to() 返回一个 RedirectResponse 对象,您需要从控制器返回该对象以进行重定向。
例如。
class Home extends BaseController {
public function index() {
return redirect()->to('https://example.com');
}
}
我使用它并且它有效
return redirect()->to(site_url());
如果你发现:
{0, string} route cannot be found while reverse-routing
这个错误:
Please Go to system\HTTP\RedirectResponse Line no 91 :
改变:
throw HTTPException::forInvalidRedirectRoute($route);
到:
return $this->redirect(site_url('/Home'));
(dashboard after login)
我是 CI4 的新手。就我而言,我必须在 App.php 中正确设置 $baseURL。例如,如果在本地开发中端口设置不正确,它就会挂起。
例如。public $baseURL = 'http://localhost:8888/';
值得一提的是,与以前的 CI3redirect()
函数不同,这个函数必须从 Controller 中调用。例如,它在库中不起作用。
2021 年更新
事实上,这是可以做到的!只需检查返回的响应是一个对象并返回它。因此,如果库返回 RedirectResponse,请使用以下代码对其进行检查,并在适用时返回。
if (!empty($log) && is_object($log)){
return $log;
}
如果有可能返回另一个对象,您当然get_class()
可以确保该对象是一种类型。RedirectResponse
如果您使用未命名的路线:
$this->response->redirect(site_url('/user'));
'/user':这是我的控制器名称。您还可以使用控制器/功能名称。
代码点火器中的重定向语句使用重定向头语句将用户发送到指定的网页。该语句位于 URL 帮助程序中,该帮助程序以下列方式加载:
$this->load->helper('url');
重定向函数加载在函数调用的第一个参数中指定的本地 URI,并使用配置文件中指定的选项构建。
第二个参数允许开发者使用不同的 HTTP 命令来执行重定向“位置”或“刷新”。
根据 Code Igniter 文档:“定位速度更快,但在 Windows 服务器上有时可能会出现问题。”
例子:
if ($user_logged_in === FALSE)
{
redirect('/account/login', 'refresh');
}