J'ai dans mon fichier .env:
IMAP_HOSTNAME_TEST=imap.gmail.com
[email protected]
IMAP_PASSWORD_TEST=mypw
Maintenant, je voudrais les utiliser dans mon contrôleur. J'ai essayé cela mais sans résultat:
$hostname = config('IMAP_HOSTNAME_TEST');
La variable $ hostname est égale à null. Comment puis-je utiliser ces variables de configuration dans mon contrôleur?
essayez avec
<?php $hostname = env("IMAP_HOSTNAME_TEST", "somedefaultvalue"); ?>
Ne fonctionne pas dans Laravel 5.3+ si vous voulez essayer d'accéder à la valeur depuis le contrôleur comme ci-dessous, elle retourne toujours null
<?php
$value=env('MY_VALUE','default_value');
SOLUTION: Vous devez plutôt créer un fichier dans le dossier config ..say values.php, puis Écrire les codes comme ci-dessous
values.php
<?php
return [
'myvalue' => env('MY_VALUE',null),
//add other values as you want
]
Ensuite, accédez à la valeur de votre contrôleur avec le code suivant
<?php
$value=\Config::get('credentials.myvalue')
Où "credentials" est le nom du fichier suivi de la clé "myvalue" J'espère que ça aide
Toutes les variables répertoriées dans le fichier .env
seront chargées dans le super-global $_ENV
PHP lorsque votre application recevra une requête . Checkout laravel page de configuration
$_ENV['yourkeyhere'];
Je pensais ajouter une réponse pour simplifier ce qui a été dit dans le passé. Seuls les fichiers de configuration peuvent accéder aux variables env, puis les transmettre.
Étape 1.) Ajoutez votre variable à votre fichier .env
, c.-à-d.
EXAMPLE_URL="http://google.com"
Étape 2.) Créez un nouveau fichier dans le dossier config
, n’importe quel nom, c.-à-d.
config/example.php
Étape 3.) À l'intérieur de ce nouveau fichier, j'ajoute un tableau renvoyé, contenant cette variable env.
<?php
return [
'url' => env('EXAMPLE_URL')
];
Étape 4.) Parce que je l'ai nommé "exemple", mon "espace de noms" de configuration est maintenant un exemple. Alors maintenant, dans mon contrôleur, je peux accéder à cette variable avec:
$url = \config('example.url');
Astuce - si vous ajoutez use Config;
en haut de votre contrôleur, vous n'avez pas besoin de la barre oblique inverse (qui désigne l'espace de nom racine). C'est à dire.
namespace App\Http\Controllers;
use Config; // Added this line
class ExampleController extends Controller
{
public function url() {
return config('example.url');
}
}
--- IMPORTANT ---N'oubliez pas de vous connecter à la console php artisan config:cache
après avoir créé votre fichier example.php. Les fichiers de configuration et les variables sont mis en cache. Ainsi, si vous apportez des modifications, vous devez vider ce cache - il en va de même pour le fichier .env
en cours de modification/d'ajout.
Vous pouvez utiliser ce format (testé sur Laravel 5.5). Dans mon cas, j’ai utilisé pour obtenir les données des connexions à la base de données et l’utiliser sur le contrôleur:
$User = env('DB_USERNAMEchild','');
$Pass = env('DB_PASSWORDchild','');
Le second paramètre peut être null ou définir une valeur par défaut dans le cas où DB_USERNAMEchild est null.
votre fichier .env peut être le même:
DB_Host=localhost
DB_DATABASE=FATHERBD
DB_USERNAME=root
DB_PASSWORD=password
DB_DATABASEchild=ZTEST
DB_USERNAMEchild=root
DB_PASSWORDchild=passwordofchild
InController
$hostname = $_ENV['IMAP_HOSTNAME_TEST']; (or) $hostname = env('IMAP_HOSTNAME_TEST');
Dans blade.view
{{$_ENV['IMAP_HOSTNAME_TEST']}}
à Laravel Controlller
public static function mail($param)
{
//$_ENV['yourkeyhere'];
$mailgunsecret = env('MAILGUN_SECRET');
$mailguurl = env('MAILGUN_DOMAIN');
}
dans les fichiers Laravel Blade
@if (env('APP_ENV')!='Production')
Enviroment Test
@endif
must run this commands
php artisan config:clear
php artisan cache:clear
composer dump-autoload
php artisan view:clear
php artisan route:clear
Exemple: Accès aux variables Laravel .env dans la lame
APP_ENV=local
APP_KEY=////
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
APP_GOOGLE_MAPS=////
APP_OVERHEID_IO=////
{{ env('APP_ENV') }} // returns 'local'
{{ env('APP_URL') }} // returns 'http://localhost'