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