Laravel 5 类未找到错误,使用命名空间。

4
我有一个自定义类,它被添加到Classes中,即在Classes文件夹下的invoice.php(\App\Classes)。
当使用控制器函数时,我无法执行静态函数,提示“找不到类”。我已经像其他类一样设置了命名空间和use,类似于Helpers.php。
类:
<?php namespace App\Classes;

class invoice {
//
}
?>

控制器:
<?php namespace App\Http\Controllers;

use App\Classes\invoice;

class CustomerController extends Controller {
//
}
?>

错误:
FatalErrorException in CustomerController.php line 284:
Class 'App\Http\Controllers\invoice' not found

我被困在这里已经两个小时了,不明白我错在哪里。Composer使用的是psr-4,Helpers.php文件运行正常,但我的自定义类文件则不行。
谢谢。

你的类名中,“invoice”中的“i”应该是大写字母。 - prograhammer
1个回答

3

遵循PSR-4规范,您需要将类名首字母大写。这里应该大写"I":

<?php namespace App\Classes;

class Invoice {
   //
}

同时也要修复你的use。当在控制器中使用Invoice时,它将会选择正确的命名空间来解决该类。目前的情况是在你的use部分中没有找到匹配的引用,因此它假定它与调用它的控制器类处于相同的命名空间中。


我看到了我的错误,这解决了我的问题,谢谢。 - jason
我有一个类似的问题,但我的类名是大驼峰式命名法。我有一个类 class InvoiceGenerator 存在于 app/Classes/InvoiceGenerator 文件夹中。在我的控制器中,我使用了 use App\Classes\InvoiceGenerator\InvoiceGenerator; 有什么想法吗? - Yogesh Mistry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接