Thinkphp6.x は Cookie とセッション ソリューションを使用できません

        今日は私がtp6を学習していた時に、思わず唸ってしまった落とし穴について解説します。

        非常にわかりにくい落とし穴に遭遇しました。つまり、セッションはコントローラー間で使用できず、公式ドキュメントにはコメントがありません。

まずは正式な使用方法を見てみましょう。

​

使用session需要引入session类可以直接使用think\facade\session,
​

これ以上は言いませんが、注意していただきたいのは、落とし穴があるということです!罠がやってくる!罠がやってくる!

sessionこの機能はデフォルトでは有効になっていません (API アプリケーションは通常、この機能を使用する必要はありませんsession)。この機能を使用する必要がある場合はSeesion、次のミドルウェア定義をグローバル ミドルウェア定義ファイルに追加する必要があります。
 

'think\middleware\sessionInit'

マルチアプリケーション モードで、一部のアプリケーションのみに使用する場合は、アプリケーション ミドルウェア定義ファイルで個別に有効にすることもできます。

グローバル ミドルウェア ファイルは、アプリ ディレクトリ内の middleware.php です。

これにはセッションの初期化があります。デフォルトではコメント化されています。コメントを解除するだけです。その後、セッションを使用できるようになります。通常はオンになっています。

composer require topthink/think-multi-app

すべての準備が整ったので、デバッグ時に次のコンテンツを使用しますか? ? 特にログインに Cookie を保存する必要がある場合

echo json_encode();exit;
echo json_encode($arr);die();

私が注目したいのは、椎茸の苦手なところ!

        tp6 がセッションまたは Cookie を初期化した後、セッションまたは Cookieの後に die または exit を使用すると、セッションまたは Cookieが消えてしまいます。消えるだろう!消えるだろう!

解決

1. 代わりにキャッシュを使用する

2. 代わりに、ネイティブの $_セッションと $_COOKIEを使用できます。

        上記の記事は、thinkphp6Cookie とセッションが使用できない問題の解決策についてのすべてです


 

おすすめ

転載: blog.csdn.net/ITMyFavorite/article/details/130285526