Laravel中不存在类控制器


Class Controller does not exist in Laravel

我是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不存在

我可以知道我做错了什么吗?我该怎么办?TIA!

我在使用Lumen而不是Laravel时遇到了这个问题。所以我认为在这里回答会对其他偶然发现这一页的人有所帮助。如果这不符合SO规则,我提前道歉。

这是我在Lumen中得到的错误:

lumen.ERROR: exception 'ReflectionException' with message 'Class Controller does not exist' 

解决方案是:在定义路线时,使用到控制器的完整路径:

$app->get('/someRoute/', 'App'Http'Controllers'Controller@index');

在CLI:中运行以下命令

composer dump autoload

并删除第二个路由,因为它没有必要,因为它已经在Resource路由中声明了。并更改

class IpController extends BaseController进入

如果您使用的是Laravel 5.0,则为class IpController extends eController

Route::resource('ip', 'IpController');

将自动创建

Route::get("ip","IpController@index");

对你来说,还有许多更有用的路线

然后你可以这样链接到它:

<a href="{{ URL('ip') }}">IP</a>

(因为自动生成的路由为Route::resource,所以仅使用www.mysite.com/ip作为"ip"s的"索引页"。

此外,在laravel 5中,确保您的控制器位于:yourapp/app/Http/Controllers/目录中。

phplaravellavel-5

添加一个命名空间。

<?php namespace App'Http'Controllers;
class IpController extends BaseController {

    public function index()
    {
        return View::make('hello');
    }
}