Res*_*had 12 laravel laravel-5
我最近将laravel 4.2项目迁移到了5.0.到目前为止,我已经完成了所有必要的步骤,但我一直收到错误.
无法声明类Controller,因为该名称已在使用中
我的控制器已根据升级指南中的laravel提供的更改.
<?php
use Illuminate\Foundation\Bus\DispatchesCommands;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController {
use DispatchesCommands, ValidatesRequests;
}
Run Code Online (Sandbox Code Playgroud)
我还将它添加到我的composer.json的classmap指令中.
"autoload": {
"classmap": [
"database",
"app/Http/Controllers"
],
"psr-4": {
"App\\": "app/"
}
},
Run Code Online (Sandbox Code Playgroud)
到目前为止我找不到任何解决方案,所以如果你们知道该怎么做它会帮助我很多:)提前感谢!
Eri*_*ker 16
"app/Http/Controllers"从您的类图中删除.
namespace App\Http\Controllers;在use块上方添加.
然后跑 composer dump-auto
Mar*_*liu 14
如果您的控制器位于文件夹而不是 app/Http/Controller 中,您应该像这样声明该命名空间:
namespace App\Http\Controllers\folderName;
Run Code Online (Sandbox Code Playgroud)
笔记:
也许您正在扩展基础Controller,所以您还应该添加以下内容:
use App\Http\Controllers\Controller;
Run Code Online (Sandbox Code Playgroud)
否则会出现这个错误:
Class 'App\Http\Controllers\Controller' not found
Run Code Online (Sandbox Code Playgroud)
我很确定您必须添加命名空间。
命名空间
默认情况下,Laravel 4 应用程序不会在你的应用程序代码中使用命名空间。因此,例如,所有 Eloquent 模型和控制器都位于“全局”命名空间中。为了更快地迁移,您也可以简单地将这些类保留在 Laravel 5 的全局命名空间中。