Исключение, создаваемое при производстве, но не при разработке (pluck () в null) - PullRequest
0 голосов
/ 05 июля 2018

Я столкнулся со странной ошибкой, из-за которой я почесал голову.

Я использую пакет, в котором мета-информация хранится в мета-таблице. Так что мои модели имеют мета-отношение. Пакет использует этот простой метод для извлечения метаданных.

public function getAllMeta()
{
    return collect($this->meta->pluck('value', 'key'));
}

Итак, что вы ожидаете, это набор метаданных, если он существует, или пустая коллекция, верно? Вот что он показывает на моем локальном сервере разработки. Насколько я понимаю, при попытке извлечь данные из отношения он вернет ноль, если нет связанной записи.

Однако, когда в производстве нет мета-отношения (нет данных), он возвращает это исключение: Call to a member function pluck() on null

Я не могу понять, почему это происходит.

  • Prod и dev используют Laravel 5.6.26.
  • Оба composer.json файла идентичны . Для проверки я использовал проверку различий.
  • И prod, и dev запустили composer update, чтобы убедиться, что все зависимости идентичны .

Итак, что мне не хватает? Этот же код возвращает пустую коллекцию в dev и выдает исключение в prod?

1 Ответ

0 голосов
/ 06 июля 2018

Похоже, что meta в этом методе после него должны быть скобки. (meta - это метод в признаке Metable, а не поле.)

Не совсем объясняет, почему вы видите различия в двух средах, но это может помочь в решении насущной проблемы.

...