Почему значения из файла .env пусты? - PullRequest
0 голосов
/ 19 октября 2018

Я открыл свое старое приложение

# php artisan --version
Laravel Framework 5.5.18

и протестировал его на своем локальном ноутбуке и на удаленном сервере (в обоих случаях ubuntu 18). Я неожиданно обнаружил, что некоторые переменные из файла .env, такие как:

UPLOADS_CMSITEM_IMAGES_URL = 'uploads/cms_items/'
UPLOADS_CMSITEM_IMAGES_DIR = 'uploads/cms_items/'

UPLOADS_CATEGORY_IMAGES_URL = 'uploads/categories/'
UPLOADS_CATEGORY_IMAGES_DIR = 'uploads/categories/'

и вызывая его в моей модели, у меня есть пустое значение

public static function getCategoryUrl(int $category_id, string $img, bool $check_existing= false) : string
{
    if ( empty($img) ) return '';
    $base_url= with(new Settings)->getBaseUrl();
    $UPLOADS_CATEGORY_IMAGES_URL= env('UPLOADS_CATEGORY_IMAGES_URL');

и мой путь неверен ...

Я запускаю

php artisan config:cache

несколько раз, но UPLOADS_CATEGORY_IMAGES_URL возвращает пустое значение ...

Как это может быть и как это исправить?

Спасибо!

1 Ответ

0 голосов
/ 19 октября 2018

Вы должны использовать конфигурацию для доступа к вашим .env значениям.Команда php artisan config:cache предназначена для обновления этих файлов конфигурации (находится в папке «config»).Вы можете добавить его к /config/app.php для простоты.

/ config / app.php

...
'uploads_category_image_url' => env('UPLOADS_CATEGORY_IMAGES_URL', '[some default value]'),
...

В вашей модели

...
$UPLOADS_CATEGORY_IMAGES_URL = config('app.uploads_category_image_url');
...

Следует отметить, что вы можете использовать значение по умолчанию, если оно одинаково для нескольких сред.Это облегчает первоначальную настройку новой среды, а также гарантирует, что в вашем коде никогда не будет неустановленного значения конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...