Route.php 类控制器中的 ReflectionException 不存在

Posted

技术标签:

【中文标题】Route.php 类控制器中的 ReflectionException 不存在【英文标题】:ReflectionException in Route.php Class Controller does not exist 【发布时间】:2017-12-02 15:23:57 【问题描述】:

我在 centos 5.8 服务器中使用 Laravel 5.2 并收到以下错误:

ReflectionException in Route.php line 280:
Class xxxx\Http\Controllers\CpanelController does not exist


ErrorException in ClassLoader.php line 412: include(/home/xxxx/vendor/composer/../../app/Http/Controllers/CpanelController.php): failed to open stream: Permission denied

我正在尝试:

php artisan cache:clear

chmod -R 777 storage

composer dump-autoload

但问题依然存在

【问题讨论】:

代替chmod -R 777 storage试试chmod -R 777 your_root_dir 你检查过命名空间吗?或者也许你有一些命名空间不同的组路由?! 你不应该用 777 chmod 你的根目录,这是修复错误的坏方法,你需要尝试 chmod 777 vendor/vendor/composer 文件夹,重新检查你的命名空间 谢谢。我处理了供应商、供应商/作曲家和主文件夹中的 chmod 权限,但仍然没有。我检查了控制器,它位于正确的位置。还有其他建议吗? 检查控制器文件的拼写和大小写。 【参考方案1】:

Laravel 在找不到 String 指向的类时会通过反射异常。

有几点要记住。

    确保您的类中有一个正确的命名空间供您尝试访问。 检查控制器文件的大小写。大写和小写在 WINDOWS 中无关紧要,但在 Linux/CentOS 中不起作用。 运行composer update 将整个目录的权限设置为 777,文件的权限为 644

【讨论】:

以上是关于Route.php 类控制器中的 ReflectionException 不存在的主要内容,如果未能解决你的问题,请参考以下文章

laravel 基础

thinkphp6控制器

深入解析Java反射 - 基础

Laravel - 找不到路线

在 Laravel 5.x 中获取“类不存在”

ThinkPHP5快速入门,路由定义