这让我发疯,但也许(或者可能)我只是想念一些东西。
我正在尝试安装GrafiteCMS,并且已经遵循docs(复杂设置)的要求。管理区域等工作正常,但是我无法使文件夹Controllers/Cms
中的控制器(通过vendor:publish生成)正常工作。我收到错误消息:
Cms \ PagesController类不存在
控制器具有以下名称空间,并被命名为PagesController
:
namespace App\Http\Controllers\Cms;
自动加载类映射也看起来正确:
'App\\Http\\Controllers\\Cms\\PagesController' => $baseDir . '/app/Http/Controllers/Cms/PagesController.php',
那我想念什么?它与Cms目录中的所有控制器有关。
答案 0 :(得分:0)
我解决了。他们应该更新代码。 对于有相同问题的任何人:
他们正在使用错误的命名空间Cms
发布cms-routes文件。它必须是完整的命名空间App\Http\Controllers\Cms
。因此,编辑您的cms-routes如下所示:
Route::group(['namespace' => 'App\Http\Controllers\Cms', 'middleware' => ['cms-language', 'cms-analytics']], function () {
Route::get('', 'PagesController@home');
Route::get('pages', 'PagesController@all');
Route::get('page/{url}', 'PagesController@show');
Route::get('p/{url}', 'PagesController@show');
Route::get('gallery', 'GalleryController@all');
Route::get('gallery/{tag}', 'GalleryController@show');
Route::get('blog', 'BlogController@all');
Route::get('blog/{url}', 'BlogController@show');
Route::get('blog/tags/{tag}', 'BlogController@tag');
Route::get('faqs', 'FaqController@all');
Route::get('events', 'EventsController@calendar');
Route::get('events/{month}', 'EventsController@calendar');
Route::get('events/all', 'EventsController@all');
Route::get('events/date/{date}', 'EventsController@date');
Route::get('events/event/{id}', 'EventsController@show');
});
答案 1 :(得分:0)
RouteServiceProvider代码必须是this。
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(function() {
require base_path('routes/web.php');
require base_path('routes/cms.php'); // if it is not exists error occurs
});
}
检查