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