【问题标题】:Why values from .env file are empty?为什么 .env 文件中的值是空的?
【发布时间】:2018-10-19 15:26:57
【问题描述】:

我打开了我的旧应用程序

# 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 返回空值...

它是怎么回事以及如何解决它?

谢谢!

【问题讨论】:

    标签: php laravel laravel-5 environment-variables


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-03
      • 1970-01-01
      • 2013-06-28
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 2018-06-30
      相关资源
      最近更新 更多