Laravel Config :: set () не работает с заданиями в очереди - PullRequest
0 голосов
/ 06 июля 2019
  1. Мне нужно динамически изменять параметры SMTP почты, такие как MAIL_HOST и MAIL_USERNAME.

  2. Для этого я использую Config::set() для динамической установки этих значений.

# This code works 
Config::set('mail.host', 'smtp.gmail.com');
Mail::to('user@example.com')->send(new myMailable());
  1. Приведенный выше код работает, если я не ставлю почту в очередь.

  2. В тот момент, когда я ставлю его в очередь, Config::set() не может установить значения.

Тест для подтверждения Config::set() не работает с заданиями в очереди -

Я создал простую работу и поместил приведенный ниже код в обработчик.

public function handle()
{
    # set the config
    Config::set('mail.host', 'smtp.gmail.com');

    # confirm config has been set correctly
    logger('Setting host to = [' . config('mail.host') . ']');
}

Приведенный выше код создает следующую запись в журнале.

Setting host to = []

Почему я не могу изменить Config на лету для заданий в очереди? И как это решить?

1 Ответ

0 голосов
/ 07 июля 2019

Помощник конфигурации можно использовать для установки переменных конфигурации во время выполнения, передав массив пар ключ / значение .

config(['mail.host' => 'smtp.gmail.com']);
...