@edik89

Как отправить куку в браузер с помощью yii2?

Всем привет!

Вопрос в следующем. Есть метод:
public function actionTest() {
    	$cookie = new \yii\web\Cookie([
            'name' => 'test',
            'value' => 'test cookie value',
            //'expire' => time() + 3600 * 24 * 1000,
        ]);

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

В данном случае все работает отлично и я вижу куку test в браузере.

Если же метод рендерит какую-либо вьюшку, напр-р:
public function actionTest() {
    	$cookie = new \yii\web\Cookie([
            'name' => 'monster',
            'value' => 'test cookie value',
            //'expire' => time() + 3600 * 24 * 1000,
        ]);

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

        return $this->render('index');
    }

, то кука не устанавливается. Т.е дело именно в методе render. Как сделать так. чтобы в одном экшене можно было выставлять куку и рендерить вьюшку?
  • Вопрос задан
  • 373 просмотра
Решения вопроса 1
qonand
@qonand
Software Engineer
public function actionTest() {
    	$cookie = new \yii\web\Cookie([
            'name' => 'monster',
            'value' => 'test cookie value',
            //'expire' => time() + 3600 * 24 * 1000,
        ]);
        Yii::$app->response->cookies->add($cookie);

        return $this->render('index');
    }


этот код корректен и должен работать, если он не работает значит Вы что-то делаете не то во вьюхе, покажите ее код...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@edik89 Автор вопроса
Да, проблема была в том, что в шаблоне потеряли где-то следующий код:
<?php $this->beginPage() ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы