2015-12-13 16:18:22 3006次浏览 1条回答 0 悬赏 10 金钱
 static function setCookies($data,$timeout=2592000){
        //默认时间30天
        var_dump($data);
        //创建成功后,将店铺的ID放入到的Cookie里面
        $cookies = Yii::$app->response->cookies;
        foreach($data as $key=>$val){
            echo $key.'----'.$val.'<br>';
            if ($cookies->has($key)){
                $cookies->remove($key);
            }
            $cookie = new \yii\web\Cookie([
                'name' => $key,
                'value' => $val,
                'expire' => time() + $timeout
            ]);
            var_dump($cookie);
            $cookies->add($cookie);
            unset($cookie);
        }
        var_dump(Yii::$app->request->cookies);exit;

    }
$data['shop_id'] = 1;
$data['member_id'] = 1;
Cookies::setCookies($data);

为什么有的变量能写入到cookie有的不能啊?
输出的,只能member_id但是没有shop_id,调试也没有啊,为什么啊

  • 回答于 2015-12-13 16:43 举报

    关于两个cookie collection的机制.

    request cookie是本次请求中, 请求方发送来的cookie信息;

    response cookie是本次请求中, 你要响应给请求方的cookie信息;

    因此, 正常情况下的一次请求中, 你成功响应cookie后, 下次请求才能拿到上次写入的cookie;

    var_dump(Yii::$app->request->cookies);exit; 自然拿不到本次请求中刚刚加入的cookie了;

您需要登录后才可以回答。登录 | 立即注册
y284663247
试用期

y284663247

注册时间:2014-11-06
最后登录:2021-12-14
在线时长:1小时36分
  • 粉丝1
  • 金钱35
  • 威望0
  • 积分45

热门问题