Maison >cadre php >Laravel >Que dois-je faire si env ne peut pas obtenir de données dans Laravel ?

Que dois-je faire si env ne peut pas obtenir de données dans Laravel ?

WBOY
WBOYoriginal
2022-06-02 17:14:524174parcourir

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é.

Que dois-je faire si env ne peut pas obtenir de données dans Laravel ?

L'environnement d'exploitation de cet article : système Windows 10, Laravel version 5.4, ordinateur Dell G3.

Que faire si env ne peut pas obtenir de données dans Laravel

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn