我在Windows和基于Linux的服务器上有一个Web服务器。当我在Windows上启动Laravel 5项目时,一切正常,但我在Linux(ubuntu)服务器上遇到了麻烦,我的托管也遇到了同样的麻烦。当我尝试加载索引页面时,我收到如下错误:
未找到类'App \ Helpers \ Substr'
之所以发生这种情况,是因为我在我的刀片模板中使用了自定义助手,并且通过“use”运算符加载了它,如下所示:
<?php
use App\Helpers\Substr;
use App\Helpers\LoaderBtn;
?>
@extends('zaks.public')
@section('content')
@include('zaks.search')
那么,在项目完成后,在这种情况下,什么可能是一个很好的解决方案?
答案 0 :(得分:8)
首先,确保您的类通过Composer左右自动加载。
然后,您可以将命名空间类添加到'aliases'
中的config/app.php
数组中,如下所示:
'aliases' => array(
// other aliases...
'App_Helper_Substr' => 'App\Helpers\Substr',
);
然后以常规方式在您的视图中使用它:
App_Helper_Substr->something...
App_Helper_Substr::something();
您可以随意命名别名。
答案 1 :(得分:0)
我猜测问题是你的Windows机器上的文件系统不区分大小写。因此,当您尝试加载类App\Helpers\Substr
这样的类时,实际意味着App\Helpers\SubStr
,或者文件路径与案例名称(PSR-4)时的类名不完全对应,类仍会在Windows上加载。
那么你应该做些什么来解决这个问题就是追查你的“案例拼写错误”并修复它。
为了防止出现这些问题,并在出错时立即捕获它们,我强烈建议您仅在区分大小写的文件系统上进行开发。我知道你可以在mac上创建一个区分大小写的分区,所以我猜想类似的东西可能会以某种方式用于Windows。或者你可以在开发时使用像homestead这样的Linux VM。我非常喜欢让您的开发环境尽可能贴近生产环境。