У меня есть вызов фасада Laravel, который завершается ошибкой «класс не найден». Странно то, что он работает в моей среде разработки, но не в моей промежуточной среде. Это особенно странно, учитывая, что обе среды являются стандартными средами Laravel. (Dev — это домашняя машина. Staging была развернута Forge и управляется Forge).
Не было подобных проблем ни с dev, ни с staging.
Мне удалось обойти проблему с помощью помощника resolve()
, но мне все еще нужно понять, почему обычное использование фасада не работает.
Вот код, который не работает в staging, но работает в dev:
$referrer = \Illuminate\Support\Facades\Url::previous();
Вот код, который работает в обеих средах:
$referrer = resolve('url')->previous();
Код находится во вспомогательном файле, у которого нет доступа к $this->app
. У меня есть десятки помощников, и все они работают нормально, в том числе многие, использующие фасады.
Вот некоторые проверки, которые я сделал:
- Владение файлом и права доступа выглядят нормально
- Версии фреймворка Laravel идентичны (на
composer.lock
) composer dump-autoload
не повлияло
$referrer = \Illuminate\Support\Facades\URL::previous()
- person adam   schedule 07.11.2018