php - 找不到 Laravel 5 类,使用命名空间

标签 php laravel laravel-5

我在类文件夹 (\App\Classes) 中添加了一个自定义类 invoice.php

当使用 Controller 功能时,我无法执行静态功能,说找不到类。我有命名空间并像任何其他类一样使用设置,类似于 Helpers.php

类:

<?php namespace App\Classes;

class invoice {
//
}
?>

Controller :

<?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 文件工作正常,但我的自定义类文件没有。

谢谢

最佳答案

要遵循 PSR-4,你需要让你的类名首字母大写。这里的“i”应该大写:

<?php namespace App\Classes;

class Invoice {
   //
}

同时修复您的使用。然后,当在 Controller 中使用 Invoice 时,它会选择正确的命名空间以用于解析该类。当前发生的情况是它没有在您的 use 部分中找到匹配的引用,因此它假定它位于调用它的 Controller 类的同一命名空间中。

关于php - 找不到 Laravel 5 类,使用命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30386880/

相关文章:

PHP array_push() 不起作用,但 array[] 起作用,只是没有 SQL where 子句

php - Laravel Blade 在 foreach 中使用 if 条件

javascript - 拉维尔 : Getting error response from controller but type error on console and response message is not showing on view page

mysql - Laravel 编写一个查询来查找是否在日期启用了访问

php - Laravel 自动注入(inject)和在构造函数体中手动指定依赖有什么区别?

php - 如何在 Laravel 中使用基本路由方法?

elasticsearch - 带有 Elasticsearch 的 Laravel Scout 不起作用

php - 连接到Office365时访问被拒绝错误

Php - 在 rewriteRule 中允许空格

php&mysql 查找父类别名称