Почему этот фасад Laravel не встречается в некоторых средах? - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть вызов фасада Laravel, который завершается с ошибкой «класс не найден». Странно то, что это работает в моей среде разработки, но не в моей промежуточной среде. Это особенно странно, учитывая, что обе среды являются стандартными средами Laravel. (Dev - это домашняя машина. Постановка была развернута Forge и управляется Forge).

Не было похожих проблем ни с dev, ни с staging.

Мне удалось обойти проблему с помощью помощника resolve(), но мне все еще нужно понять, почему обычное использование фасада не работает.

Вот код, который не проходит в стадии подготовки, но работает в dev:

$referrer = \Illuminate\Support\Facades\Url::previous();

Вот код, который работает в обеих средах:

$referrer = resolve('url')->previous();

Код находится во вспомогательном файле, который не имеет доступа к $this->app. У меня там десятки помощников, и все они отлично работают, в том числе многие, которые используют фасады.

Вот некоторые проверки, которые я сделал:

  • Владение файлами и разрешения выглядят отлично
  • Версии фреймворка Laravel идентичны (для composer.lock)
  • composer dump-autoload не имел никакого эффекта

1 Ответ

0 голосов
/ 07 ноября 2018

Возможно, в вашей среде учитывается регистр, попробуйте:

$referrer = \Illuminate\Support\Facades\URL::previous();
...