はじめに
Laravel を使用するときに、 「リクエストにセッション ストアが設定されていません」というエラーが表示されるとイライラすることがあります。この記事は、問題の明確な説明と段階的な解決策を提供することを目的としています。
エラーとは何ですか?
「セッション ストアが設定されていません」 request」エラーは、受信 HTTP リクエストにセッション ストアが設定されていないことを示します。これは、セッション ミドルウェアが関連ルートに適用されていない場合に発生する可能性があります。
考えられる原因: Web ミドルウェアが欠落しています
セッションなどの重要な機能を処理する Web ミドルウェア通常、このエラーの原因は、状態と CSRF 保護です。認証やセッションに依存するその他の機能が適切に機能することを保証するには、Web ミドルウェアを関連するルートに適用する必要があります。
解決策: Web ミドルウェアを適用します
「リクエストにセッション ストアが設定されていません」エラーを解決するには、routes.php ファイルで次のコード ブロックを使用します。
<code class="php">Route::group(['middleware' => ['web']], function () { // your routes here });</code>
このコードは、グループ内で定義されているすべてのルートに Web ミドルウェアを適用します。これで、これらのルートへのすべての受信リクエストにセッション ストアが設定され、エラーは解決されるはずです。
例:
Web ミドルウェアを認証および登録ルートでは、routes.php ファイルを次のように更新します。
<code class="php">// Authentication routes Route::group(['middleware' => ['web']], function () { Route::get('auth/login', ['uses' => 'Auth\AuthController@getLogin', 'as' => 'login']); Route::post('auth/login', ['uses' => 'Auth\AuthController@postLogin', 'as' => 'login']); Route::get('auth/logout', ['uses' => 'Auth\AuthController@getLogout', 'as' => 'logout']); }); // Registration routes Route::group(['middleware' => ['web']], function () { Route::get('auth/register', ['uses' => 'Auth\AuthController@getRegister', 'as' => 'register']); Route::post('auth/register', ['uses' => 'Auth\AuthController@postRegister', 'as' => 'login']); });</code>
Web ミドルウェアを適切なルートに追加することで、それらのルートへのすべての受信リクエストにセッション ストアが効果的に設定されるようになります。 「リクエストにセッション ストアが設定されていません」エラーを解決しました。
以上がLaravel で「リクエストにセッション ストアが設定されていません」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。