CakePHP 3.5写作和阅读Cookie

时间:2018-06-01 01:07:27

标签: cakephp cookies cakephp-3.0 cakephp-3.5

首先,我尝试了这两个链接提供的这两个解决方案

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的正确方向吗?

1 个答案:

答案 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);
相关问题