Yii2 の Cookie は主に yii\web\Request および yii\web\Response を通じて操作されます
#Pass \Yii: :$app->response->getCookies()->add()Add Cookie
\Yii::$app->request->cookies を通じて Cookie を読み取ります (推奨学習: yii チュートリアル )
js で作成された Cookie は、デフォルトでメソッド Yii::$app->request->cookies- >Get('abc') を取得できませんこれは以下の理由によるものですが、$_COOKIE['abc'] を使用することで取得できます。
E:\myYiiDemo\vendor\yiisoft\yii2\web\Request.php の 1218 行目を見ると、yii2 のメソッドを使用してCookie が読み取られます。cookieValidationKey の文字列を使用して復号化します (Cookie を保存するときに暗号化するためにも使用されます)。
jsはCookieを暗号化していないため、ここでは復号化できず、当然Cookieは取得できません。
#解決策は、enableCookieValidation を false に設定することです。具体的な操作は次のとおりです:
Yii::$app->request->enableCookieValidation = false; Yii::$app->request->cookies->get('abc');
注意事項:
使用後は忘れずに復元してください (Yii::$app->request->enableCookieValidation = true;)。そうしないと、次のロジックに影響を与える可能性があります。以上がyii2 Cookie を取得できない理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。