variable entorno archivos archivo php laravel config laravel-5.1

php - archivos - Obtener valor del entorno en el controlador



variable de entorno php (8)

Es una mejor idea colocar las variables de configuración en un archivo de configuración.

En su caso, sugeriría poner sus variables en config / mail.php como

''imap_hostname'' => env(''IMAP_HOSTNAME_TEST'', ''imap.gmail.com'')

y referirse a ellos por

config(''mail.imap_hostname'')

Primero intenta obtener el valor de la variable de configuración en el archivo .env y si no puede encontrar el valor de la variable en el archivo .env , obtendrá un valor variable de config / mail.php

En mi archivo .env tengo lo siguiente:

IMAP_HOSTNAME_TEST=imap.gmail.com [email protected] IMAP_PASSWORD_TEST=mypw

Ahora me gustaría usarlos en mi controlador. He intentado esto pero sin resultado:

$hostname = config(''IMAP_HOSTNAME_TEST'');

La variable $ hostname es igual a null. ¿Cómo puedo usar estas variables de configuración en mi controlador?


Puede que no esté relacionado, pero podría ayudar a alguien ... en Laravel simplemente dd (config (''app.env'')); y verás ''local'' o ''producción''


Se puede usar con este formato, (Probado en Laravel 5.5) en mi caso, lo usé para obtener los datos de las conexiones de la base de datos y usar en el Controlador:

$User = env(''DB_USERNAMEchild'',''''); $Pass = env(''DB_PASSWORDchild'','''');

El segundo parámetro puede ser nulo, o establecer cualquier valor predeterminado en caso de que DB_USERNAMEchild sea nulo.

Tu archivo .env puede ser el mismo:

DB_HOST=localhost DB_DATABASE=FATHERBD DB_USERNAME=root DB_PASSWORD=password DB_DATABASEchild=ZTEST DB_USERNAMEchild=root DB_PASSWORDchild=passwordofchild


Todas las variables enumeradas en el archivo .env cargarán en el PHP-global de $_ENV cuando su aplicación reciba una solicitud. Pagina de configuracion de laravel

$_ENV[''yourkeyhere''];


probarlo con

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


No funciona en Laravel 5.3+ si desea intentar acceder al valor del controlador como se muestra a continuación, devuelve siempre nulo

<?php $value=env(''MY_VALUE'',''default_value'');

SOLUCIÓN: En su lugar, debe crear un archivo en la carpeta de configuración ..say values.php y luego escribir los códigos como se muestra a continuación

valores.php

<?php return [ ''myvalue'' => env(''MY_VALUE'',null), //add other values as you want ]

Luego accede al valor en tu controlador con el siguiente código

<?php $value=/Config::get(''credentials.myvalue'')

Donde "credenciales" es el nombre del archivo seguido de la clave "mi valor" Espero que ayude


InController

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

En blade.view

{{$_ENV[''IMAP_HOSTNAME_TEST'']}}


en Laravel Controlller

public static function mail($param) { //$_ENV[''yourkeyhere'']; $mailgunsecret = env(''MAILGUN_SECRET''); $mailguurl = env(''MAILGUN_DOMAIN''); }

en archivos 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

Ejemplo: Accediendo a las variables .env de Laravel en blade

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

Obtener valor del entorno en el controlador