yii2在调用render方法时没有设置cookie

时间:2018-01-02 22:32:40

标签: php cookies layout yii2 set

我尝试在yii2控制器中使用此操作设置cookie:

public function actionContact() {
$cookie = new Cookie([
            'name' => 'test_name',
            'value' => 'test_value'
        ]);
Yii::$app->getResponse()->getCookies()->add($cookie);
return $this->render('contact');
}

但它不会像这样工作。同时,如果我这样做而不渲染联系人视图,它确实有效。如果我使用

,它也有效
return $this->redirect('anothercontroller'); 

而不是

return $this->render('contact');

如果我在没有布局的情况下使用它($ this-> layout = false)那么它也可以使用。 布局文件中的html标题是否覆盖了以前的信息?

布局文件的骨架是:

<?php
use yii\helpers\Url;
//etc...

AppAsset::register($this);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="shortcut icon" type="image/x-icon" href="/img/logo4.xcf" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="format-detection" content="telephone=no">
    <title>Title</title>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
        <script type="text/javascript">
            google.charts.load('current', {'packages': ['corechart']});
            google.charts.load('current', {'packages':['gauge']});
            google.charts.load('current', {'packages': ['geochart'],
    'mapsApiKey': 'AIzaSyDW77Ajhkkj0-c70o5lXawp89Sfj81TI' 
    });
     </script>
    <?= Html::csrfMetaTags() ?>
    <?php $this->head() ?>
</head> 
<body>
    <?php $this->beginBody() ?>  
        <?= $content ?>
    <?php $this->endBody() ?>
</body> 
</html>
<?php $this->endPage() ?>

有没有解决方法? 谢谢你的时间!

0 个答案:

没有答案