在Laravel 5.x中出现了“class does not exist”的错误。

14 浏览
0 Comments

在Laravel 5.x中出现了“class does not exist”的错误。

不管控制器中的命名空间设置正确与否,文件位于正确位置,我都会遇到错误:Class App\Http\Controllers\TranslatorService does not exist

route.php:

Route::group(['prefix' => 'api', 'middleware' => 'response-time'], function     () {
    Route::group(['prefix' => 'v1'], function () {
        Route::get('/', function () {
            App::abort(404);
        });
        Route::resource('accounts', 'AccountController');
    });
    Route::group(['prefix' => 'v2'], function () {
        Route::get('/', function () {
            App::abort(501, 'Feature not implemented');
        });
    });
});

AccountController.php位于app/ComdexxSolutions/Http/Controllers,是一个标准的骨架控制器。

TranslationService.phpAccountController位于相同的路径下,内容如下:


目录结构:

app
├── ComdexxSolutions
│   ├── Billing
│   ├── Console
│   ├── Contracts
│   ├── DbCustomer.php
│   ├── Events
│   ├── Exceptions
│   ├── Facades
│   ├── Http
│   ├── InvokeUser.php
│   ├── Jobs
│   ├── Listeners
│   ├── Models
│   ├── Providers
│   ├── Repositories
│   ├── Search
│   ├── Services
│   ├── spec
│   ├── Traits
│   ├── Transformers
│   └── Views
├── Console
│   ├── Commands
│   └── Kernel.php
├── Entities
├── Events
│   └── Event.php
├── Exceptions
│   └── Handler.php
├── Http
│   ├── Controllers
│   ├── Kernel.php
│   ├── Middleware
│   ├── Requests
│   └── routes.php
├── Jobs
│   └── Job.php
├── Listeners
├── Modules
├── Providers
│   ├── AppServiceProvider.php
│   ├── ErrorServiceProvider.php
│   ├── EventServiceProvider.php
│   └── RouteServiceProvider.php
├── Repositories
└── User.php

0
0 Comments

在Laravel 5.x中出现“class does not exist”错误的原因可能是由于命名空间问题导致的。解决方法是进行全局搜索,查找引发错误的文件,然后检查文件中是否正确引用了相应的类或命名空间。

具体来说,有一个用户在IRC上提出了类似的问题,通过Webex会议解决了问题。问题的根本原因在于在controller.php文件中调用了TranslatorService,但是没有正确设置命名空间,导致控制器无法找到TranslatorService,从而引发了错误。这个问题比较难找到,因为错误提示并没有指明是来自controller.php文件。

用户通过在整个项目中全局搜索TranslatorService来找到问题所在的文件。如果你遇到了类似的错误,以下是一些建议:

1. “class does not exist”通常意味着你在代码中使用了找不到的东西。可能是拼写错误,但更常见的是命名空间问题。

2. 如果遇到这个错误,全局搜索是找到错误来源的好方法,特别是当错误不明显时。

根据最后一句话,他的ComdexxSolutions应该是app文件夹下的一个文件。

0