我有一个.json
文件,我想在.env
上定义。
我怎么做 ?
我的json文件在(laravel root folder)/json_google/api_key.json
。
我试过GOOGLE_SERVICE_ACCOUNT_JSON_LOCATION=/json_google/api_key.json
但是没有工作..
答案 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文件是按部署进行的,因此设置完整路径没有问题。