Yii2 куда теряется кука при переходе на другую страницу? на странице site.ru/site/index
Добавляю новую куку:$cookies = Yii::$app->response->cookies;
// добавление новой куки в HTTP-ответ
$cookies->add(new \yii\web\Cookie([
'name' => 'language',
'value' => 'zh-CN',
]));
после чего перехожу на любую другую страницу, и при попытке вывести куку с помощью команды
$cookies = Yii::$app->response->cookies;
print_r($cookies);
Выдает пустой массивyii\web\CookieCollection Object
(
[readOnly] =>
[_cookies:yii\web\CookieCollection:private] => Array
(
)
)
Но при таком способе вывода
print_r($_COOKIE);
Все же нахожу свою кукуArray
(
[advanced-frontend] => d302qt09a66ufpa6h8pf9sbqn1
[_csrf-frontend] => 45e72fe5c56707ee174e40397a050ee2c05dca4b12a1d928d14256434010de98a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"8gj4-V-HDakUKW9E39XMJ6EEcsR6_bDW";}
[language] => f1dc92de966487919bea9a0e6e5240af52c079c42ef8afbad662ba53fc89a2ffa:2:{i:0;s:8:"language";i:1;s:5:"zh-CN";}
)
Подскажите пожалуйста, где ошибка. Почему куки не видно при попытке обращения к ней средствами Yii2?

21 Авг 2019 в 07:03
284 +1
1
Ответы
1

Проблема здесь в том, что вы смотрите на куки через объект $cookies, который является частью response, а вам нужно обращаться к request, чтобы получить куки.

Вы можете получить куки таким образом:

$cookies = Yii::$app->request->cookies;
$language = $cookies->getValue('language');

Попробуйте использовать этот код для получения куки на других страницах в Yii2. Надеюсь, это поможет вам решить проблему.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир