Dans Laravel, vous pouvez utiliser l'instruction "php artisan config:clear" pour vider le cache de configuration afin de résoudre le problème selon lequel env ne peut pas obtenir de données. La raison de ce problème est que le fichier de configuration du cache lit les variables d'environnement via env ; fonction, ce qui peut provoquer la lecture La variable d'environnement ne peut pas être obtenue, donc null est renvoyé.
L'environnement d'exploitation de cet article : système Windows 10, Laravel version 5.4, ordinateur Dell G3.
Solution :
Effacer la commande de cache de configuration
php artisan config:clear
Cause
Dans Laravel, si vous exécutez la commande php aritisan config:cache, Laravel mettra le app Tous les fichiers de configuration du répertoire /config sont "compilés" et intégrés dans un fichier de configuration de cache dans bootstrap/cache/config.php. Chaque fichier de configuration peut lire les variables d'environnement via la fonction env, qui peut être lue ici. Mais une fois que vous avez ce fichier de configuration du cache, vous ne pouvez pas lire les variables d'environnement en utilisant la fonction env ailleurs, donc null est renvoyé.
Jetons un coup d'œil à ce code, Illuminate/Foundation/Bootstrap/DetectEnvironment.php ligne 18 :
public function bootstrap(Application $app){ if(!$app->configurationIsCached()){ $this->checkForSpecificEnvironmentFile($app); try{ (newDotenv($app->environmentPath(),$app->environmentFile()))->load(); }catch(InvalidPathException$e){ } } }
Cette méthode s'exécutera après le démarrage du framework. Ce code illustre que si un fichier de configuration du cache existe, les variables d'environnement ne seront pas définies.
Par conséquent, lors de la lecture de fichiers de configuration ailleurs dans le répertoire app/config, n'utilisez pas la fonction env pour lire les variables d'environnement. De cette façon, une fois que vous aurez exécuté php artisan config:cache, la fonction env ne fonctionnera pas. Toutes les variables d'environnement à utiliser sont lues via env dans le fichier de configuration dans le répertoire app/config. Si les variables d'environnement sont utilisées ailleurs, le fichier de configuration est lu uniformément au lieu d'utiliser la fonction env.
【Recommandation associée : tutoriel vidéo Laravel】
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!