Laravel 中不存在类控制器
Posted
技术标签:
【中文标题】Laravel 中不存在类控制器【英文标题】:Class Controller does not exist in Laravel 【发布时间】:2015-05-23 15:26:04 【问题描述】:我是 Laravel 的新手,我只是在关注一些教程博客,但我还处于早期阶段。
这是我的路线
Route::resource('ip', 'IpController');
Route::get("index","IpController@view");
这是我的控制器
<?php
class IpController extends BaseController
public function index()
return View::make('hello');
这是我访问页面的方式
<a href=" URL() /ip/index">IP</a>
我按照教程所说的去做,但我很困惑为什么我在访问页面时遇到了这个错误。
类 IpController 不存在
我可以知道我做错了什么,我该如何解决?蒂亚!
【问题讨论】:
每当你创建一个新类时,运行 composer dump-autoload (当然,如果你没有遵循 psr-4)。 @Dave 是否解决了这个问题,因为我也面临这个问题并且没有找到任何解决方案。 :-( 【参考方案1】:我在使用 Lumen 而不是 Laravel 时遇到了这个问题。所以我认为在这里回答也会对那些偶然发现这个页面的人有所帮助。如果这不符合 SO 规则,我提前道歉。
这是我在 Lumen 中遇到的错误:
lumen.ERROR: exception 'ReflectionException' with message 'Class Controller does not exist'
解决方法是:定义路由时,使用控制器的全路径:
$app->get('/someRoute/', 'App\Http\Controllers\Controller@index');
【讨论】:
【参考方案2】:添加命名空间。
<?php namespace App\Http\Controllers;
class IpController extends BaseController
public function index()
return View::make('hello');
【讨论】:
【参考方案3】:在 CLI 中运行以下命令:
composer dump autoload
并删除第二条路线,因为它不是必需的,因为它已经在您的 Resource 路线中声明。 并改变
class IpController extends BaseController
进入
class IpController extends eController
如果你使用的是 Laravel 5.0。
【讨论】:
【参考方案4】:Route::resource('ip', 'IpController');
会自动创建
Route::get("ip","IpController@index");
为了你,还有many more helpful routes。
然后你可以像这样创建它的链接:
<a href=" URL('ip') ">IP</a>
(因为自动生成的路由是 Route::resource
仅使用 www.mysite.com/ip
作为“ip”的“索引页”。
另外,在 laravel 5 中,请确保您的控制器位于:yourapp/app/Http/Controllers/
目录。
phplaravellaravel-5
【讨论】:
嗨,我关注了这一切,而我得到的 BadMethodCallException 方法 [show] 不存在。 你能提供你的路线列表吗?您可以使用命令行命令执行此操作:php artisan route:list
编辑:我想我遇到了你的问题:你正在访问带有如下 URL 的页面:www.yoursite.com/ip/something
然后 laravel 认为你想要 显示 之一ip,它通过你的Controller中的show
方法处理(当使用Route::resource
的好处时),这确实不存在......
嗨,但我也尝试使用这条路线 Route::get("index","IpController@index");但还是同样的问题
给您带来这个问题的页面的 URL 是什么?以上是关于Laravel 中不存在类控制器的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 Laravel 8.1 中创建一个普通控制器(--plain 在新版本中不存在)[关闭]
解决未捕获的ReflectionException:C: ... Container.php中不存在类日志:
我的控制器在 laravel 项目中不起作用我面临这个错误“Class App\Http\Controllers\HelloController 不存在”
ReflectionException Class App\Controller\MyController 在 laravel 中不存在错误