laravel - laravel 和配置变量的问题
问题描述
我正在安装一个 Payment Getaway API,这表示我必须在 .env 中输入:
INSTAPAGO_KEY_ID = 74D4A278-C3F8-4D7A-9894-FA0571D7E023
INSTAPAGO_PUBLIC_KEY_ID = e9a5893e047b645fed12c82db877e05a
然后,当我运行付款度假以进行付款时,它会显示此错误:
The KeyId property is required.
Laravel 的 vendor 文件夹中出现错误的代码部分是这样的:
namespace Socialgest\Instapago;
use GuzzleHttp\Client;
class Instapago
{
const API_HOST = 'https://api.instapago.com/';
const TIMEOUT = 20.0;
protected $api_url;
protected $key_id;
protected $public_key_id;
protected $client;
public function __construct()
{
$this->key_id = config('instapago.key_id');
$this->public_key_id = config('instapago.public_key_id');
$this->client = new Client([
'base_uri' => self::API_HOST,
'timeout' => self::TIMEOUT,
]);
}
你怎么看,它正在调用一个配置变量,我不知道它来自哪里,所以我认为如果我像这样在 config/services.php 中添加:
return [
'mailgun' => [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
],
'ses' => [
'key' => env('SES_KEY'),
'secret' => env('SES_SECRET'),
'region' => env('SES_REGION', 'us-east-1'),
],
'sparkpost' => [
'secret' => env('SPARKPOST_SECRET'),
],
'stripe' => [
'model' => App\User::class,
'key' => env('STRIPE_KEY'),
'secret' => env('STRIPE_SECRET'),
],
'instapago' => [
'key_id' => env('INSTAPAGO_KEY_ID'),
'public_key_id' => env('INSTAPAGO_PUBLIC_KEY_ID'),
],
];
它会工作,但我不知道为什么?它仍然找不到 KEY ID,它在 .env 中,所以我想知道问题出在哪里?
或者如何直接设置 .env 变量而不是 config 变量,我的意思是如何添加 env('INSTAPAGO_KEY_ID')
谢谢!
解决方案
你能试试config('services.instapago.key_id')
吗config('services.instapago.public_key_id')
?
推荐阅读
- c# - 仅针对特定类/类型的 SuppressMessage
- javascript - MongoDB 查询 .then() 运行次数过多
- javascript - 如何循环嵌套数组?
- angular - 在响应式表单中通过制表符/鼠标移出输入字段后显示验证消息
- amazon-web-services - 如何比复制操作更快地在两个 S3 存储桶之间移动对象?
- python - 将 Swagger 与 Django Rest Framework 一起使用,我可以在不同的字段中看到 POST 参数而不是一个正文吗
- angular - 在构建数组时添加表单控件
- android - 错误:expo-camera.isAvailableAsync 和 expo-camera.getAvailableCameraTypesAsync 在 android 上不可用
- laravel - Laravel MIX_ 变量在生产环境中不起作用
- r - 如何在 r 数据帧中应用模糊查找