Laravel如何在.env上定义文件位置?

时间:2017-10-04 05:18:48

标签: php laravel

我有一个.json文件,我想在.env上定义。 我怎么做 ? 我的json文件在(laravel root folder)/json_google/api_key.json。 我试过GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION=/json_google/api_key.json但是没有工作..

2 个答案:

答案 0 :(得分:3)

你应该使用常量文件来使用.env变量。

.env file

GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION=/json_google/api_key.json

现在在config / constatns.php中设置

return [
       'STORAGE_GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION' => env("GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION", ""),
];

获取json文件路径

Config::get('constants.STORAGE_GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION')

答案 1 :(得分:1)

Laravel有许多辅助函数来解析路径。比如你的情况下的base_path()。您可以在此处找到所有帮助者:vendor/laravel/framework/src/Illuminate/Foundation/helpers.php

base_path(env('GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION');

但是,我设置完整路径而不是相对路径。否则,你的应用程序必须知道它应该是什么(laravel root,或app path,...)并考虑到这一点,这种方法将文件位置置于你的代码库之外的目的是失败的,因为它使它成为更难将它移动到其他地方。

由于.env文件是按部署进行的,因此设置完整路径没有问题。