首先,我尝试了这两个链接提供的这两个解决方案
How to set and get Cookies in Cakephp 3.5
How to create cookies at controller level in CakePHP 3.5?
但是,它只是不起作用。我提供了一个如何尝试编写和读取cookie的示例。但它们都不起作用。
写Cookie
use Cake\Http\Cookie\CookieCollection;
use Cake\Http\Cookie\Cookie;
public function writeCookie() {
$cookie = new Cookie(
'remember_me', // name
1, // value
(Time::now())->modify('+1 year'), // expiration time, if applicable
'/', // path, if applicable
'', // domain, if applicable
false, // secure only?
true // http only ?
);
$cookies = new CookieCollection([$cookie]);//To create new collection
$cookies = $cookies->add($cookie);//to add in existing collection
$this->response = $this->response->withCookie('remember_me', [
'value' => 'yes',
'path' => '/',
'httpOnly' => true,
'secure' => false,
'expire' => strtotime('+1 year')
]);
}
阅读Cookie
public function readCookie(){
$cookie = $this->request->getCookie('remember_me');
debug($cookie); //is getting a null value
}
有人能指出我在CakePHP 3.5中编写和读取cookie的正确方向吗?
答案 0 :(得分:0)
问题是您以错误的方式编写了cookie。添加到Cookie集合后,应编写$ cookie。检查以下代码。
写Cookie
$cookie = new Cookie('remember_me',
1,
(Time::now())->modify('+1 year'),
'/', // path, if applicable
'', // domain, if applicable
false, // secure only?
true // http only ?
);
$cookies = new CookieCollection([$cookie]);
$this->response = $this->response->withCookie($cookie);