Laravel 8:无法找到组件 [dashboardHeader] 的类或视图

时间:2021-07-23 05:29:40

标签: laravel

在我的本地主机中一切正常。但是在放入在线服务器后,我遇到了很多错误。我收到此错误,名称中没有区分大小写的问题。

这是我在 app->http->view/component 中的班级名称

class dashboardHeader extends Component

这是我在视图文件中调用组件的标签。

<x-dashboardHeader />

我也试过这种方法

<x-dashboardHeader> </x-dashboardHeader>

但是还是不行!

1 个答案:

答案 0 :(得分:1)

我将把它作为答案,因为它对于评论来说太大了。

当您在模板中放置 x-dashboardHeader 标签时 - Laravel 实际上是在尝试从 View\ 加载您的 DashboardHeader 类(注意大写 D) Components 命名空间(读作 LARAVEL_ROOT\App\View\Components\DashboardHeader.php)。
它使用由 Composer 生成的自动加载器来完成。

在使用 Windows/MacOS 进行开发时 - 文件名区分大小写不是问题,因为在这些系统中您不能有两个具有相同名称的文件(独立于名称大小写)。因此,如果您有一个名为“myCoolFile”的文件 - 您可以使用“mycoolfile”、“MyCoolFile”等访问它......

但对于 unix 系统而言,情况并非如此。在这些系统中,文件名区分大小写。您可以有 3 个名为“myCoolFile”、“mycoolFile”、“MyCoolFile”的文件,这不会有问题。您可以使用以下方法自行测试:

touch myCoolFile
touch MyCoolFile
touch mycoolfile
ls -l

因此回到 Laravel 尝试加载您的 LARAVEL_ROOT\App\View\Components\DashboardHeader.php 文件,该文件在您的情况下具有不同的名称 dashboardHeader.php .由于 DashboardHeader.phpdashboardHeader.php 在 unix 系统中是不同的文件 - 你会得到错误。

我真的希望我能描述这个问题。

这就是为什么我建议您可能需要阅读 PHP-PSR 文档(同样,Laravel 紧随其后),其中说必须使用 StudlyCaps 命名类。所以没有“dashboardHeader”,没有“dashboard_Header”之类的东西,只有“DashboardHeader”,“MyCoolClass”等等。

相关问题