为什么我的 Laravel 安装需要前缀 \ 反斜杠作为外观别名



我不知道以下示例出现故障的原因:

Auth::user()->id 

但是,只需在它前面加上反斜杠就可以正常工作:

Auth::user()->id

这是config/app.php的片段

'aliases' => [
'App' => IlluminateSupportFacadesApp::class,
'Artisan' => IlluminateSupportFacadesArtisan::class,
'Auth' => IlluminateSupportFacadesAuth::class,
'Blade' => IlluminateSupportFacadesBlade::class,
'Broadcast' => IlluminateSupportFacadesBroadcast::class,

服务器是 Ubuntu 16.04 上的 Apache

这就是命名空间的工作方式。

当您处于典型的Laravel模型,控制器等中时,您处于其命名空间中 - 例如AppAppHttpControllers之类的。因此,Auth::foo()分别表示AppAuth::foo()AppHttpControllersAuth::foo()

这就是为什么教你如何使用 Auth 的示例在使用Auth类之前都use IlluminateSupportFacadesAuth;,并说如下内容:

我们将通过Auth外观访问 Laravel 的身份验证服务,因此我们需要确保在类的顶部导入Auth外观。

最新更新