为什么.env文件中的值为空?

时间:2018-10-19 15:26:58

标签: php laravel laravel-5 environment-variables

我打开了旧应用程序

# 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 :(得分:0)

您应该使用配置来访问您的.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');
...

注意,如果在多个环境中都使用默认值,则可以使用默认值。这样可以更轻松地初始设置新环境,并确保您的代码中永远不会有未设置的配置值。