CakePHP 3.5 Написание и чтение Cookie

Прежде всего, я попробовал эти два решения, представленные в этих двух ссылках

Как установить и получить Cookies в Cakephp 3.5

Как создать куки на уровне контроллера в CakePHP 3.5?

Но это просто не работает как-то. Я привел пример того, как я пытался писать и читать 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
}

Может кто-нибудь указать мне правильное направление, чтобы написать и прочитать cookie в CakePHP 3.5?

1 ответ

Проблема в том, что вы пишете куки неправильно. Вы должны написать $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);
Другие вопросы по тегам