J'essaie de savoir pourquoi mon assistant env()
renvoie toujours null
. Cela pose des problèmes, en particulier dans le fichier app.php
, où les assistants env()
sont largement utilisés par défaut. Peut-être un paramètre de serveur mystérieux?
Mon fichier env :
APP_ENV=production
APP_KEY=base64:mymagickey=
APP_DEBUG=false
APP_LOG_LEVEL=info
APP_URL=http://www.example.com
etc...
EDIT - J'ai essayé de suivre :
php artisan cache:clear
php artisan view:clear
php artisan config:cache
et bien sûr, j'utilise env
helper comme ceci: env('APP_ENV')
Mais toujours pas de succès. La partie bizarre est que cette variable php $_ENV
contient chaque variable du fichier .env
.
La fonction env(...)
ne fonctionnera pas après la mise en cache de la configuration. (à partir de laravel 5,2 à 5,7 actuel)
La Documentation Laravel dit
Si vous utilisez la commande
config:cache
lors du déploiement, vous devez vous assurer que vous appelez uniquement la fonctionenv
à partir de vos fichiers de configuration et non de n'importe où ailleurs dans votre application.
Donc, la bonne réponse serait de
Si vous appelez env depuis votre application, il est vivement recommandé d'ajouter les valeurs de configuration appropriées à vos fichiers de configuration et d'appeler env depuis cet emplacement, ce qui vous permettra de convertir vos appels env en appels de configuration.
Et je l'ai cité de la même documentation
Mais pour une solution rapide, cela suffira:
php artisan config:clear
Et maintenant, il devrait être clair pourquoi, lorsque vous avez essayé config:cache
, cela n'a pas aidé, même si cela efface la configuration avant la mise en cache.
J'espère que cette commande vous sauvera
php artisan config: effacer
Utilisez \Config::get('app.env');
au lieu de env(APP_ENV);
car vous obtiendrez éventuellement la même erreur et ce n'est pas bon pour un site Web actif.
Si vous voulez ajouter des variables personnalisées à partir de votre ENV, allez dans votre application de configuration et trouvez ceci:
/*
|--------------------------------------------------------------------------
| Application Environment
|--------------------------------------------------------------------------
|
| This value determines the "environment" your application is currently
| running in. This may determine how you prefer to configure various
| services your application utilizes. Set this in your ".env" file.
|
*/
'env' => env('APP_ENV', 'production'),
ajoutez une nouvelle ligne sous "'env' => env('APP_ENV', 'production'),
", par exemple, il pourrait s'agir de:
/*
|--------------------------------------------------------------------------
| Application Environment
|--------------------------------------------------------------------------
|
| This value determines the "environment" your application is currently
| running in. This may determine how you prefer to configure various
| services your application utilizes. Set this in your ".env" file.
|
*/
'env' => env('APP_ENV', 'production'),
'key' => env('APP_KEY'),
Vous pouvez appeler la variable "clé" comme ceci:
\Config::get('app.key');
Chaque fois que vous ajoutez une nouvelle variable telle que "clé" à l'environnement d'application, vous devez utiliser config:cache
pour réinitialiser le cache.
C'est un bogue connu ".env" qui peut être résolu avec:
php artisan config:cache
Les cinq commandes les plus importantes si votre Laravel ne fonctionne pas correctement après quelques modifications dans le fichier .env ou dans le dossier de base de données ou en raison de toute autre modification .. Voici l'explication complète: https://www.youtube.com/watch? v = Q1ynDMC8UGg
php artisan config:clear
php artisan cache:clear
composer dump-autoload
php artisan view:clear
php artisan route:clear
On dirait que l'ancienne version PHP était installée sur le serveur, ce qui n'est pas situable pour que le paquetage .env
de Laravel fonctionne correctement. Lorsque j'ai déployé le site Web sur un autre serveur sur lequel PHP 7 était installé, env()
a renvoyé les valeurs comme prévu.