【发布时间】:2018-07-22 20:00:27
【问题描述】:
我正在尝试在我的 Laravel 项目中创建 API 目录,但收到以下错误...
Class 'App\Http\Controllers\Controller' not found
我曾尝试在我的 API 控制器上使用 use App\Http\Controllers\Controller;,但没有成功。
我的 API 类被定义为...
class SyncController extends Controller {...}
class TimecardController extends Controller {...}
我很确定错误来自extends Controller 部分。
在App\Http\Controllers\Controller 我有Controller.php。我推过去的一种方法是将Controller.php复制到App\Http\Controllers\Api\v2\并更改该控制器的命名空间以匹配它所在的位置(namespace App\Http\Controllers\Api\v2;)
我不认为这是正确的,因为应该有一种方法可以从 API 子目录中的控制器中引用 Controller.php。
../Controllers/Controller.php 和 API 是一个子目录,../Controllers/Api/v2/SyncController.php
任何帮助将不胜感激。
谢谢
-----------编辑------------
我的 api 路由看起来像这样
Route::group(['prefix' => 'api/v2'], function () {
Route::get('sync', 'Api\v2\SyncController@sync')->middleware('auth:api');
Route::post('timecard', 'Api\v2\TimecardController@create')->middleware('auth:api');
});
【问题讨论】:
-
确保你的类
Controller的命名空间是App\Http\Controllers。然后运行composer dump-autoload。 -
您是否更改了 Controller.php 的命名空间,使其不是 App\Http\Controllers?如果 app/Http/Controllers/Controller.php 存在并且您收到此错误,则您要么搞砸了该文件,要么搞砸了 composer autoload 部分。
-
分享
App\Http\Controllers\Controller文件 -
这里是Controller.php`命名空间App\Http\Controllers;使用 Illuminate\Foundation\Bus\DispatchesJobs;使用 Illuminate\Routing\Controller 作为 BaseController;使用 Illuminate\Foundation\Validation\ValidatesRequests;使用 Illuminate\Foundation\Auth\Access\AuthorizesRequests;类控制器扩展 BaseController { 使用 AuthorizesRequests,DispatchesJobs,ValidatesRequests; } `
-
试试
composer dump-autoload
标签: php laravel laravel-5 routes controllers