Проблема с laravel и переменными конфигурации - PullRequest
1 голос
/ 28 мая 2020
• 1000 1004 *
The KeyId property is required.

Часть кода в папке поставщика Laravel, в которой есть ошибка:

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 напрямую вместо переменной конфигурации, я имею в виду, как я могу добавить env ('INSTAPAGO_KEY_ID')

Спасибо!

Ответы [ 3 ]

1 голос
/ 28 мая 2020

Не могли бы вы попробовать config('services.instapago.key_id') и config('services.instapago.public_key_id')?

0 голосов
/ 28 мая 2020

У вас не должно быть доступа к переменным env() в вашем коде. Вы должны использовать иерархию config(), как вы это делали. Убедитесь, что вы перезагрузили кеш конфигурации, прежде чем запускать свою программу с

php artisan config:cache

. Если у вас все еще возникают проблемы, попробуйте использовать php artisan tinker и посмотрите, заполнены ли эти переменные. ПРИМЕЧАНИЕ: вы можете видеть env() переменные в tinker, но вы не должны использовать их в производственном коде.

0 голосов
/ 28 мая 2020

так как ваши переменные имеют дефисы, вы должны заключить их в ""

INSTAPAGO_KEY_ID = "74D4A278-C3F8-4D7A-9894-FA0571D7E023"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...