Как установить и получить файлы cookie в cakephp 3.5

Я прочитал документацию по Cakephp, но она не работает. Вот мой код,

$this->response = $this->response->withCookie('remember_me', [
    'value' => 'yes',
    'path' => '/',
    'httpOnly' => true,
    'secure' => false,
    'expire' => strtotime('+1 year')
]);
$rememberMe = $this->request->getCookie('remember_me');

Вы пытаетесь написать эти две строки кода одну за другой? Не думаю, что это сработает. Типичное использование - установить файл cookie в ответ на один запрос, а затем вы можете получить этот файл cookie в запросах будущее.

Greg Schmidt 11.04.2018 16:12

Я пытаюсь работать с одной и той же функцией одну за другой, но не могу прочитать другую страницу и вернуть NULL

Zahid 12.04.2018 07:11

Совершенно непонятно, почему вы хотите читать из файла cookie, который был только что установлен, когда у вас есть данные, которые использовались для его установки. Файлы cookie используются для сохранения данных от одной загрузки страницы до следующей, а не в пределах одной загрузки страницы.

Greg Schmidt 12.04.2018 16:02
1
3
1 501
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пожалуйста, посмотрите документацию. Вы найдете его по следующей ссылке:

https://book.cakephp.org/3.0/en/controllers/request-response.html#Cake\Http\Cookie\CookieCollection

Чтобы создать куки

use Cake\Http\Cookie\Cookie;

$cookie = new Cookie(
    'remember_me', // name
    1, // value
    new DateTime('+1 year'), // expiration time, if applicable
    '/', // path, if applicable
    'example.com', // domain, if applicable
    false, // secure only?
    true // http only ? );

Теперь добавьте файл cookie в коллекцию файлов cookie:

use Cake\Http\Cookie\CookieCollection;
$cookies = new CookieCollection([$cookie]);//To create new collection
$cookies = $cookies->add($cookie);//to add in existing collection

Теперь прочтите cookie таким образом.

   $cookie = $cookies->get('remember_me');

Надеюсь, вы обнаружите, что это работает.

Здесь следует упомянуть важный момент: запись и чтение файлов cookie должны быть двумя отдельными http-запросами.

Другие вопросы по теме