redis->executeCommand('HGETALL', [$cacheKey]); if(!empty($order)){ $arr = []; $i = 0; $x = 0; foreach($order as $key => $val){ $i++; if($i%2 == 0){ $arr[$x]['value'] = $val; $x++; }else{ $arr[$x]['key'] = $val; } } $orderArr = []; foreach($arr as $key => $val){ $orderArr[$val['key']] = $val['value']; } unset($orderArr['info_already_get_by_sql']); if($sjId != 0 && !empty($orderArr)){ if($orderArr['sjId'] != $sjId){ \common\components\util::fail('非法访问'); } } return $orderArr; } $order = xhOrder::find()->where(['id' => $id])->asArray()->one(); if($sjId != 0 && !empty($order)){ if($order['sjId'] != $sjId){ \common\components\util::fail('非法访问'); } } $params = [$cacheKey]; $params[] = 'info_already_get_by_sql'; $params[] = 'ok';//redis没有办法设置带空值的键,加此可以数据空时表示取过 if(!empty($order)){ foreach($order as $key => $val){ $params[] = $key; $params[] = $val; } } Yii::$app->redis->executeCommand('HMSET',$params); return $order; } }