Как прочитать куки в кастомном классе?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Как прочитать куки в кастомном классе?

Сообщение crows »

Всем привет.

У меня есть самый обычный класс:

Код: Выделить всё

<?php

namespace app\services;

class WarningService
{
...
}
Я вызываю этот класс в отображениях для определения того, стоит ли показывать пользователю предупреждения (warnings). В этом классе я не могу читать куки с помощью методов фреймворка.

Пример:

Код: Выделить всё

$value = \Yii::$app->getRequest()->getCookies()->getValue('my_cookie');
Всегда будет NULL. Хотя в массиве $_COOKIE этот ключ есть.
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Re: Как прочитать куки в кастомном классе?

Сообщение crows »

Кстати, запись куков таким способом работает:

Код: Выделить всё

        $cookies = \Yii::$app->response->cookies;

        $cookies->add(new Cookie([
            'name' => $this->key,
            'value' => '1',
            'expire' => time() + 86400 * 365,
        ]));
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Как прочитать куки в кастомном классе?

Сообщение Dominus »

Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
crows
Сообщения: 289
Зарегистрирован: 2012.03.03, 10:37

Re: Как прочитать куки в кастомном классе?

Сообщение crows »

Dominus писал(а): 2018.07.04, 12:49 Тут посмотрите: https://www.yiiframework.ru/forum/viewtopic.php?t=14915
Проблема в том, что я делаю это не в контроллере? Есть ли возможность делать это в модели?
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: Как прочитать куки в кастомном классе?

Сообщение urichalex »

crows писал(а): 2018.07.05, 13:17
Dominus писал(а): 2018.07.04, 12:49 Тут посмотрите: https://www.yiiframework.ru/forum/viewtopic.php?t=14915
Проблема в том, что я делаю это не в контроллере? Есть ли возможность делать это в модели?
Получайте в контроллере и передавайте куда надо
Ответить