为什么在某些环境中找不到此 Laravel 门面?
Why is this Laravel facade not found in some environments?
我调用了 Laravel 门面,但失败并出现 'class not found' 错误。奇怪的是它在我的开发环境中工作,但在我的暂存环境中不工作。考虑到这两种环境都是标准 Laravel 环境,这尤其奇怪。 (Dev是宅基地机,Staging由Forge部署,由Forge管理)
开发或暂存都没有类似的问题。
我已经使用 resolve()
帮助程序解决了这个问题,但我仍然需要理解为什么通常的 facade 用法不起作用。
这是暂存失败但在开发中有效的代码:
$referrer = \Illuminate\Support\Facades\Url::previous();
下面是适用于两种环境的代码:
$referrer = resolve('url')->previous();
该代码位于无法访问 $this->app
的帮助文件中。我在那里有几十个帮手,他们都工作得很好,包括许多使用外墙的人。
以下是我做过的一些检查:
- 文件所有权和权限看起来不错
- Laravel 框架版本相同(根据
composer.lock
)
composer dump-autoload
没有效果
可能你的环境区分大小写,试试:
$referrer = \Illuminate\Support\Facades\URL::previous();
我调用了 Laravel 门面,但失败并出现 'class not found' 错误。奇怪的是它在我的开发环境中工作,但在我的暂存环境中不工作。考虑到这两种环境都是标准 Laravel 环境,这尤其奇怪。 (Dev是宅基地机,Staging由Forge部署,由Forge管理)
开发或暂存都没有类似的问题。
我已经使用 resolve()
帮助程序解决了这个问题,但我仍然需要理解为什么通常的 facade 用法不起作用。
这是暂存失败但在开发中有效的代码:
$referrer = \Illuminate\Support\Facades\Url::previous();
下面是适用于两种环境的代码:
$referrer = resolve('url')->previous();
该代码位于无法访问 $this->app
的帮助文件中。我在那里有几十个帮手,他们都工作得很好,包括许多使用外墙的人。
以下是我做过的一些检查:
- 文件所有权和权限看起来不错
- Laravel 框架版本相同(根据
composer.lock
) composer dump-autoload
没有效果
可能你的环境区分大小写,试试:
$referrer = \Illuminate\Support\Facades\URL::previous();