Laravel - часовой пояс - Config null - PullRequest
0 голосов
/ 30 апреля 2020

Я установил laravel -timezone, как описано здесь: https://github.com/jamesmills/laravel-timezone

также добавлен файл конфигурации, и в файле конфигурации есть это:

часовой пояс. php

'lookup' => [
    'server' => [
        'REMOTE_ADDR',
    ],
    'headers' => [

    ],
],

После входа в систему сценарий автоматически обновляет часовой пояс, но я получаю Invalid argument supplied for foreach() в файле \vendor\jamesmills\laravel-timezone\src\Listeners\Auth\UpdateUsersTimezone.php:111

функция такова :

  /**
* @return mixed
*/
private function getFromLookup()
{
    $result = null;
    foreach (config('timezone.lookup') as $type => $keys) {
        if (empty($keys)) {
            continue;
        }

        $result = $this->lookup($type, $keys);

        if (is_null($result)) {
            continue;
        }
    }

    return $result;
}

Я попытался поместить туда dd (), а config('timezone.lookup') имеет значение null. Почему он возвращает значение NULL, если файл существует и в нем назначено значение? Что мне нужно сделать, чтобы сделать этот часовой пояс? php доступным?

Ответы [ 2 ]

3 голосов
/ 30 апреля 2020

При кэшировании конфигурации Laravel создает файл в bootstrap/cache/config.php со всей конфигурацией. После этого отдельные файлы кэша и .env файл больше не читаются .

. Поэтому вам необходимо очистить кэш конфигурации, и я рекомендую не кэшировать его во время разработки , Кэшировать только конфигурацию в рабочем состоянии.

Просто запустить:

php artisan cache:clear
1 голос
/ 02 мая 2020

Извините, у вас возникли проблемы с использованием пакета. Насколько я знаю, вам не нужно публиковать sh конфигурацию пакета для работы после начальной установки. Он должен выбрать значения по умолчанию, чтобы вы могли установить его и go! Однако, как уже говорили другие, если вы делаете publi sh config, попробуйте, пожалуйста, flu sh ваш кеш конфигурации php artisan cache: clear

Спасибо @apokryfos за вашу помощь по этому вопросу ,

Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь отвечать.

Джеймс

...