За последние 24 часа нас посетили 21608 программистов и 1066 роботов. Сейчас ищут 690 программистов ...

artisan config:cache не генерирует мою переменную

Тема в разделе "Laravel", создана пользователем виталий032, 3 апр 2020.

  1. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    Поместил новую переменную SMS_KEY в .env файл.

    Затем закешировал: php artisan config:cache.
    Пытаюсь вытащить переменную в контроллере:
    PHP:
    1. return response()->json([
    2.     'SMS_KEY' => \Illuminate\Support\Facades\Config::get('sms.key'),
    3.     'JWT_SECRET' => \Illuminate\Support\Facades\Config::get('jwt.secret'),
    4.     'APP_NAME' => \Illuminate\Support\Facades\Config::get('app.name'),
    5. ], 200);
    и в итоге sms_key пустая, а токен и имя приложения не пустые.

    Меняю значение APP_NAME. Заново кеширую. Проверяю. Значение APP_NAME изменилось, а значение SMS_KEY осталось пустым.

    Ладно. Захожу в файл bootstrap/cache/config.php, APP_NAME есть в виде массива, а SMS_KEY нету.
    Что я только не делал, все равно не появляется значение SMS_KEY.

    Подскажите, в чем может быть проблема?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.554
    Симпатии:
    1.754
    КОнфиг - это не то, что в ENV, это то, что в папке config. Попробуйте в каком-нибудь файле в этой папке прописать вызов env() с вашей переменной
     
    виталий032 нравится это.
  3. виталий032

    виталий032 Активный пользователь

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    Спасибо, помогло. Создал свой отдельный конфиг файл и заработало.

    Думал, что строка передаваемая в Config::get() - это и есть ключ из .env
    Оказывается первое слово до точки - это название конфиг файла, а второе слово после точки - название ключа массива.:)

    Для тех, кто придет из гугла:
    PHP:
    1. <?php
    2. // config/sms.php
    3.  
    4. return [
    5.   'key' => env('SMS_KEY'),
    6.   'sky' => env('BLUE_SKY')
    7. ];
    Код (Text):
    1. // .env
    2.  
    3. BLUE_SKY=indeed
    4. SMS_KEY=3***************
    PHP:
    1. <?php
    2. // LoginController.php
    3.  
    4. return response()->json([
    5.     'BLUE_SKY' => \Illuminate\Support\Facades\Config::get('sms.sky'),
    6.     'SMS_KEY' => \Illuminate\Support\Facades\Config::get('sms.key'),
    7.     'JWT_SECRET' => \Illuminate\Support\Facades\Config::get('jwt.secret'),
    8.     'APP_NAME' => \Illuminate\Support\Facades\Config::get('app.name'),
    9. ], 200);
    Код (Text):
    1. php artisan config:cache