大家好。我正在与codeigniter4工作,我希望能够存储cookie,然后重定向到另一个页面。如果我设置了一个不包含重定向过程的cookie, cookie存储成功,但问题是当我进行重定向时,cookie不再保存。我如何解决并使cookie保存和重定向。
public function loginProcessor()
{
helper(['cookie']);
$checkStatus = true;
if ($checkStatus)
{
set_cookie('nameCookie', 'CookieSomething', time() + 60*60*24*30);
}
return redirect()->to('dashboard');
}
如果您将->withCookies()
附加到重定向,则它将从全局响应实例复制所有cookie。对于您的示例,它将是:
public function loginProcessor()
{
helper(['cookie']);
$checkStatus = true;
if ($checkStatus)
{
set_cookie('nameCookie', 'CookieSomething', time() + 60*60*24*30);
}
return redirect()->to('dashboard')->withCookies();
}
来源值得一提的是,我在使用Cookie函数的Session库中也遇到了问题,所以我使用了一个更旧的版本。
function setMyCookie($name,$value,$time,$params = array()){
if (empty($params)){
$config = config('App');
$params = array(
'expires' => $time,
'path' => $config->cookiePath,
'domain' => $config->cookieDomain,
'secure' => $config->cookieSecure,
'httponly' => $config->cookieHTTPOnly,
'samesite' => $config->cookieSameSite,
);
}
setcookie($name,$value,$params);
}
这被保存为一个助手,然后从控制器等调用。