php - 拉维尔 5.1 "ReflectionException in Container.php line 737:..class does not exist"

标签 php laravel-5 laravel-5.1 laravel-routing

我确信这个问题的解决方案就在我眼前,但不幸的是我似乎无法弄清楚。我正在尝试向我的 laravel 5.1 安装添加一条路由,但收到以下错误...

ReflectionException in Container.php line 737:
Class App\Http\Controllers\Tools\DashBoardController does not exist

我首先编辑了路由文件以包含以下内容...

(文件:app\Http\routes.php)

 Route::get('dashboard', 'Tools\DashBoard@index');

然后我创建了“Tools”文件夹和“DashBoardController.php”文件,并将其设置为如下所示...... (文件:app\Http\Controllers\Tools\DashBoardController.php)

 namespace App\Http\Controllers\Tools\DashBoard;
 //...etc...//
 class DashBoardController extends Controller { /* ..etc.. */ }

这就是我所要做的一切吗?我读到您可以在终端中运行“composer dumpautoload”,但不幸的是这没有帮助。

我在 Win7 上使用 PHP7 安装了本地主机 XAMPP,如果这有用的话。非常感谢任何帮助!

最佳答案

您的命名空间声明应类似于 namespace App\Http\Controllers\Tools并且不应包含您的类的文件名或名称。然后你需要更改你的路线以指向你的类(class)名称 Route::get('dashboard', 'Tools\DashBoardController@index');

自动加载器和命名空间在 PHP(尤其是 Laravel)中的工作方式是命名空间必须反射(reflect)目录结构,并且类名必须与其文件名匹配。

如果您将使用来自同一命名空间的 Controller 来拥有多个路由,那么您可能会从实现 route group namespaces 中受益。 .

关于php - 拉维尔 5.1 "ReflectionException in Container.php line 737:..class does not exist",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34596973/

相关文章:

php - 在 nginx 上找不到 Laravel 路由

laravel - 如何处理laravel社交名流 "Missing authorization Exception"

Laravel 5 - artisan 种子 [ReflectionException] 类 SongsTableSeeder 不存在

laravel-5 - 拉拉维尔 : searching related data

php - 如何创建多重登录认证?

javascript - 如何在没有提交按钮的情况下提交 “file” 输入,然后在同一脚本中执行 mysql 更新

javascript - 在 PHP 中加密字符串并在 Node.js 中解密

php - 是否可以在 GAS 上使用 Monologues 并在 Stack Driver 中记录日志级别?

php - Laravel 5.1 如果记录存在于另一个表中则插入

php - 对特定 Controller 功能的授权 Laravel 5.1