Получить значение среды в контроллере


В моем файле .env у меня есть следующее:

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

Теперь я хотел бы использовать их в своем контроллере. Я пробовал это, но безрезультатно:

$hostname = config('IMAP_HOSTNAME_TEST');

Переменная $hostname равна нулю. Как я могу использовать эти переменные конфигурации в своем контроллере?

Author: nielsv, 2015-12-14

7 answers

Попробуйте сделать это с помощью

<?php $hostname = env("IMAP_HOSTNAME_TEST", "somedefaultvalue"); ?>
 27
Author: Chetan Ameta, 2015-12-14 09:14:03

Не работает в Laravel 5.3+ если вы хотите попытаться получить доступ к значению с контроллера, как показано ниже, он всегда возвращает значение null

<?php

$value=env('MY_VALUE','default_value');

РЕШЕНИЕ: Скорее вам нужно создать файл в папке конфигурации..скажем values.php а затем напишите коды, как показано ниже

values.php

<?php

return [

    'myvalue' => env('MY_VALUE',null),

    //add other values as you want

]

Затем получите доступ к значению в вашем контроллере с помощью следующего кода

<?php


$value=\Config::get('credentials.myvalue')

Где "учетные данные" - это имя файла, за которым следует ключ "myvalue" Надеюсь, это поможет

 12
Author: Masum Ahmed Sarkar, 2018-03-03 05:25:56

Все переменные, перечисленные в файле .env, будут загружены в суперглобальный PHP $_ENV, когда ваше приложение получит запрос. Проверка страницы конфигурации laravel

$_ENV['yourkeyhere'];
 5
Author: Basheer Ahmed Kharoti, 2015-12-14 09:13:59

Вы можете использовать этот формат (протестирован на Laravel 5.5) в моем случае я использовал для получения данных подключений к базе данных и использования на контроллере:

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

Второй параметр может быть равен нулю или установить любое значение по умолчанию в случае, если DB_USERNAMEchild равно нулю.

Ваш файл .env может быть таким же:

DB_HOST=localhost
DB_DATABASE=FATHERBD
DB_USERNAME=root
DB_PASSWORD=password

DB_DATABASEchild=ZTEST
DB_USERNAMEchild=root
DB_PASSWORDchild=passwordofchild
 1
Author: Zarkys Salas, 2018-01-18 07:59:13

Контролер

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

В blade.view

{{$_ENV['IMAP_HOSTNAME_TEST']}}
 1
Author: Anandan K, 2018-02-01 06:44:10

Лучше поместить ваши переменные конфигурации в файл конфигурации.

В вашем случае я бы предложил поместить ваши переменные в config/mail.php как

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

И ссылаться на них с помощью

config('mail.imap_hostname')

Сначала он пытается получить значение переменной конфигурации в файле .env, и если он не смог найти значение переменной в файле .env, он получит значение переменной из config/mail.php

 0
Author: Hamid Parchami, 2018-10-03 11:56:17

Может быть не связано, но это может кому-то помочь.... в Laravel просто dd(конфигурация('app.env')); и вы увидите "местное" или "производство"

 -2
Author: T.J., 2017-07-31 22:42:50