laravel - Laravel 8:无法找到组件 [dashboardHeader] 的类或视图
问题描述
在我的本地主机中一切都很好。但是在放入在线服务器后,我遇到了很多错误。我收到此错误,名称中没有区分大小写的问题。
这是我的班级名称app->http->view/component
class dashboardHeader extends Component
这是我在视图文件中调用组件的标签。
<x-dashboardHeader />
我也试过这种方式
<x-dashboardHeader> </x-dashboardHeader>
但它仍然无法正常工作!
解决方案
我会把这个作为答案,因为它对于评论来说太大了。
当您将x-dashboardHeader标签放入模板时 - Laravel 实际上是在尝试从View\Components命名空间(将其读取为LARAVEL_ROOT\App\View\Components\DashboardHeader.php )加载您的DashboardHeader类(注意大写的 D )。
它使用由作曲家生成的自动加载器来完成。
在使用 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.php和dashboardHeader.php在 unix 系统中是不同的文件 - 你会得到错误。
我真的希望我能描述这个问题。
这就是为什么我建议您可能想要阅读PHP-PSR文档(Laravel 再次遵循该文档),其中说类必须使用StudlyCaps命名。所以没有“dashboardHeader”,没有“dashboard_Header”之类的东西,只有“DashboardHeader”,“MyCoolClass”等等。
推荐阅读
- discord.js - 如果您有多个物品,我如何才能使它显示为“钓鱼竿(x3)”?[库存命令]
- swift - 当用户从其他应用程序导航时,applicationWillEnterForeground 被击中
- ios - 使用pickerView(swift)从响应中验证
- javascript - 当用户对消息做出反应时如何消除反应?- 不和谐.js
- c - Makefile:缺少分隔符停止,但使用制表符?
- javascript - 是否可以添加一个“。” 在 Math.random 内
- javascript - 在javascript中排序后,使用来自值的新键格式化JSON
- python - 无法安装使用 entry_points、ModuleNotFoundErrors 的本地开发的 python 包
- javascript - javascript将/转换为带分数的除号
- memory - 如何在 Python-Plotly-Dash 布局中使用回调中的变量?