我是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!
答案 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');
}
}