web-dev-qa-db-fra.com

Obtenir la valeur de l'environnement dans le contrôleur

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?

22
nielsv

essayez avec 

<?php $hostname = env("IMAP_HOSTNAME_TEST", "somedefaultvalue"); ?>
40
Chetan Ameta

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

22

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'];
8
Basheer Ahmed

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.

4
Grant

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
2
Zarkys Salas

InController

$hostname = $_ENV['IMAP_HOSTNAME_TEST']; (or) $hostname = env('IMAP_HOSTNAME_TEST');

Dans blade.view

{{$_ENV['IMAP_HOSTNAME_TEST']}}
1
Anandan K

à 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' 

Obtenir la valeur de l'environnement dans le contrôleur

1
Jd Patel