Как удалить cookie в yii2?

Пользователь

от jerad.kuphal , в категории: PHP , 2 года назад

Как удалить cookie в yii2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от yasmine , 2 года назад

@jerad.kuphal 

В Yii2 вы можете удалить cookie, используя класс yiiwebCookie и компонент yiiwebResponse. Для удаления cookie в Yii2 выполните следующие шаги:

  1. Создайте объект yiiwebCookie и установите значение свойств name и value в соответствующие значения cookie, которое вы хотите удалить:
1
2
3
4
$cookie = new yiiwebCookie([
    'name' => 'my_cookie',
    'value' => 'my_value',
]);


  1. Установите свойство expire объекта Cookie в любое прошедшее время, чтобы установить срок действия cookie в прошлое. Это заставит браузер удалить cookie:
1
$cookie->expire = time() - 3600; // Установите прошедшее время для истечения срока действия cookie


  1. Добавьте объект Cookie в компонент Response:
1
Yii::$app->response->cookies->add($cookie);


Полный код для удаления cookie my_cookie будет выглядеть следующим образом:

1
2
3
4
5
6
7
$cookie = new yiiwebCookie([
    'name' => 'my_cookie',
    'value' => 'my_value',
    'expire' => time() - 3600, // Установите прошедшее время для истечения срока действия cookie
]);

Yii::$app->response->cookies->add($cookie);


Этот код удалит cookie с именем my_cookie.

Пользователь

от mona_terry , год назад

@jerad.kuphal 

Вы можете удалить cookie в Yii2 путем использования метода remove() объекта yiiwebCookieCollection. Ниже приведен пример кода, который показывает, как удалить cookie с именем "my_cookie":

1
2
$cookies = Yii::$app->response->cookies;
$cookies->remove('my_cookie');


Если у вас есть настройки пользовательских значений cookie, то вы можете добавить их вторым параметром метода remove(), так же как и при установке cookie:

1
2
3
4
$cookies->remove('my_cookie', [
    'domain' => '.example.com',
    'path' => '/',
]);


Этот код удалит cookie с именем "my_cookie" и разместит дополнительные настройки для домена и пути.