我从Github克隆了这个todstoychev/Laravel5Starter并安装了它。
创建此StaticPagesController
控制器并更新我的routes.php文件后。控制器似乎不起作用。出于某种原因,我不断收到以下错误。
ReflectionException in ControllerInspector.php line 32:
Class App\Http\Controllers\StaticPagesController@faq does not exist
我的routes.php文件
<?php
// Admin routes
Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function () {
Route::controller('permissions', 'AdminPermissionsController');
Route::controller('settings', 'AdminSettingsController');
Route::controller('roles', 'AdminRolesController');
Route::controller('users', 'AdminUsersController');
Route::controller('/', 'AdminController');
});
// Public and user routes
Route::controller('contacts', 'ContactsController');
Route::controller('users', 'UsersController');
Route::controller('/', 'IndexController');
Route::controller('faq', 'StaticPagesController@faq');
我的StaticPagesController.php文件
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class StaticPagesController extends Controller
{
public function faq(){
return 'this is faq page';
}
}
我已尝试composer update
,php artisan acl:update
,composer dumpautoload
无济于事。
请帮帮我。感谢
答案 0 :(得分:0)
这一行:
Route::controller('faq', 'StaticPagesController@faq');
你告诉Laravel faq
的控制器应该是StaticPagesController@faq
。 Route::controller
方法为路由设置整个控制器,它没有指定在该路由上使用的方法,Laravel在内部处理它。看看你的错误来证明我的观点:
Class App\Http\Controllers\StaticPagesController@faq does not exist
正在寻找班级StaticPagesController@faq
而不是StaticPagesController
。
除非您使用REST构建API,否则不应使用controller
方法,而是明确指定路由,即
Route::get('faq', 'StaticPagesController@faq');
当用户向URI faq
发出GET请求时,这将在您的控制器上使用faq
方法。如果你坚持使用controller
方法,那么从第二个参数中移除@faq
你会很好,虽然我很确定Laravel期望方法索引,显示,创建等以在您的控制器中。我建议您查看Laravel 5 Fundamentals视频课程,以帮助您更好地理解。