Laravel中不存在类控制器

时间:2015-03-20 09:01:24

标签: php laravel controller laravel-routing

我是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!

4 个答案:

答案 0 :(得分:2)

我在使用流明而不是Laravel时遇到过这个问题。因此,我认为在这里回答对于偶然发现此页面的其他人也会有所帮助。如果不符合SO规则,我会事先道歉。

这是我在Lumen得到的错误:

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

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

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

答案 1 :(得分:1)

在CLI中运行以下命令:

composer dump autoload

并删除第二个路由,因为它已经在资源路由中声明,因此没有必要。 并改变

class IpController extends BaseController进入

class IpController extends eController如果您使用的是Laravel 5.0。

答案 2 :(得分:0)

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/目录。

答案 3 :(得分:0)

添加命名空间。

<?php namespace App\Http\Controllers;

class IpController extends BaseController {


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

}