在命名空间中定义控制器仍然发生在 laravel 5.5 中的 Class App\Http\Controllers 错误
Posted
技术标签:
【中文标题】在命名空间中定义控制器仍然发生在 laravel 5.5 中的 Class App\\Http\\Controllers 错误【英文标题】:Defining controller in namespace still Class App\Http\Controllers error taking place in laravel 5.5在命名空间中定义控制器仍然发生在 laravel 5.5 中的 Class App\Http\Controllers 错误 【发布时间】:2018-05-21 14:19:00 【问题描述】:我正在使用 laravel 5.5。我创建了一个名为 Abc
的控制器文件夹,并在其中创建了一个名为 abc.php
的控制器文件,在此文件中我编写了代码:
namespace App\Http\Controllers\Abc;
use App\Http\Controllers\Controller;
//use Illuminate\Support\Facades\DB;
class abcController extends Controller
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
$this->middleware('guest');
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function NewPromotion()
return view('new-promotion');
在 web.php 文件下的 Route 文件夹中,我调用它的视图文件,例如:- Route::get('/new-promotion','Abc\abcController@NewPromotion');
尽管在命名空间中进行了定义,但我仍然遇到错误,即
"反射异常 (-1) 类 App\Http\Controllers\Abc\abcController 不存在”。
可能的问题是什么?
【问题讨论】:
请将您的所有代码格式化,在其前面添加 4 个空格。 【参考方案1】:您应该确保您的文件位于app/Http/Controllers/Abc
目录中并且名称为abcController.php
(区分大小写)。
按照惯例,类名也以大写字母开头,因此您应该将控制器命名为AbcController
,并将此文件命名为AbcController.php
(并更新您的路由文件以使用此控制器名称的有效大小写)。
【讨论】:
【参考方案2】:创建控制器的好方法是使用 cmd (你必须在项目目录中)
php artisan make:controller "Abc\abcController"
【讨论】:
以上是关于在命名空间中定义控制器仍然发生在 laravel 5.5 中的 Class App\Http\Controllers 错误的主要内容,如果未能解决你的问题,请参考以下文章
“‘command’命名空间中没有定义任何命令。”在 Laravel 中运行命令后:make
Laravel 5.7 使用某些命名空间的资源控制器路由名称是啥?