Maison > Article > développement back-end > Pourquoi est-ce que j'obtiens l'erreur « Magasin de sessions non défini sur demande » dans Laravel ?
Introduction
Lorsque vous travaillez avec Laravel, vous rencontrez l'erreur « Magasin de session non défini sur demande » peut être frustrante. Cet article vise à fournir une explication claire du problème et une solution étape par étape.
Quelle est l'erreur ?
Le magasin de session n'est pas activé request" indique que le magasin de sessions n'a pas été défini sur la requête HTTP entrante. Cela peut se produire lorsque le middleware de session n'a pas été appliqué aux itinéraires concernés.
Cause possible : middleware Web manquant
Le middleware Web, qui gère les fonctionnalités essentielles telles que la session l'état et la protection CSRF, sont généralement à l'origine de cette erreur. Pour garantir le bon fonctionnement de l'authentification et d'autres fonctionnalités qui reposent sur les sessions, le middleware Web doit être appliqué aux routes pertinentes.
Solution : appliquer le middleware Web
Pour résoudre l'erreur "Session store not set on request", utilisez le bloc de code suivant dans votre fichier routes.php :
<code class="php">Route::group(['middleware' => ['web']], function () { // your routes here });</code>
Ce code appliquera le middleware web à toutes les routes définies au sein du groupe. Désormais, le magasin de sessions sera défini sur toutes les requêtes entrantes vers ces routes, et l'erreur devrait être résolue.
Exemple :
Pour appliquer le middleware Web à votre routes d'authentification et d'enregistrement, mettez à jour votre fichier routes.php comme suit :
<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>
En ajoutant le middleware Web aux routes appropriées, vous vous assurerez que le stockage de session est défini sur toutes les demandes entrantes sur ces routes, efficacement résolution de l'erreur « Magasin de session non défini sur demande ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!