Laravel 11 有问题。简单的网站工作正常。但是当我访问管理面板时,我在登录后收到此错误。当我访问管理/仪表板时,我收到错误 “PHP 8.3.6 11.6.0 目标类 [admin] 不存在。”
应用\Http\Kernel.php
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\CheckDisabled::class,
\UxWeb\SweetAlert\ConvertMessagesIntoSweetAlert::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
'super_admin' => [
\Illuminate\Session\Middleware\AuthenticateSession::class,
\App\Http\Middleware\CheckSuperAdmin::class,
],
'admin' => \App\Http\Middleware\CheckAdmin::class,
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'admin' => \App\Http\Middleware\CheckAdmin::class,
'super_admin' => \App\Http\Middleware\CheckSuperAdmin::class,
'sweetalert' => \UxWeb\SweetAlert\ConvertMessagesIntoSweetAlert::class,
];
/**
* The priority-sorted list of middleware.
*
* This forces non-global middleware to always be in the given order.
*
* @var array
*/
protected $middlewarePriority = [
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\Authenticate::class,
\Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\Illuminate\Auth\Middleware\Authorize::class,
];
}
web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\EstimateController;
use App\Http\Controllers\CatalogController;
use App\Http\Controllers\ConnectionController;
use App\Http\Controllers\BeamInventoryController;
use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\ForgotPasswordController;
use App\Http\Controllers\Auth\ResetPasswordController;
Route::get('/test', [HomeController::class, 'testRoute']);
// Home Routes...
// Route::get('', [HomeController::class, 'index']);
Route::redirect('/', '/home');
Route::get('/welcome', [HomeController::class, 'welcome']);
Route::get('/info', [HomeController::class, 'info']);
Route::get('/test', [HomeController::class, 'testRoute']);
Route::get('/home', [HomeController::class, 'index']);
Route::get('/help', [HomeController::class, 'help']);
Route::get('/file-names', [HomeController::class, 'insertFileName']);
Route::get('/getCloudFileNames', [HomeController::class, 'getUserFileNames']);
// Authentication Routes...
Route::get('login', [LoginController::class, 'showLoginForm'])->name('login');
Route::post('login', [LoginController::class, 'login']);
Route::post('logout', [LoginController::class, 'logout'])->name('logout');
// Password Reset Routes...
Route::get('password/reset', [ForgotPasswordController::class, 'showLinkRequestForm'])->name('password.request');
Route::post('password/email', [ForgotPasswordController::class, 'sendResetLinkEmail'])->name('password.email');
Route::get('password/reset/{token}', [ResetPasswordController::class, 'showResetForm'])->name('password.reset');
Route::post('password/reset', [ResetPasswordController::class, 'reset'])->name('password.update');
// Estimate Routes...
Route::post('openLocalFile', [EstimateController::class, 'openLocalFile']);
Route::post('/openCloudFile', [EstimateController::class, 'openCloudFile']);
Route::post('/checkCloudFileExists', [EstimateController::class, 'checkCloudFileExists']);
Route::post('/deleteCloudFile', [EstimateController::class, 'deleteCloudFile']);
Route::post('/saveEstimateData', [EstimateController::class, 'saveEstimate']);
Route::post('/importBofmData', [EstimateController::class, 'importBofmData']);
Route::post('/saveBofMData', [EstimateController::class, 'saveBofM']);
Route::post('/downloadEstimateData', [EstimateController::class, 'downloadEstimateData']);
Route::post('/downloadBofMData', [EstimateController::class, 'downloadBofMData']);
Route::post('/downloadEstimateData', [EstimateController::class, 'downloadEstimateData']);
Route::post('/downloadBofMData', [EstimateController::class, 'downloadBofMData']);
// CatalogController Routes...
Route::get('/catalog-materials', [CatalogController::class, 'getCatalogMaterials']);
Route::get('/catalogs-with-materials', [CatalogController::class, 'getCatalogsWithMaterials']);
Route::post('/update-catalog-materials', [CatalogController::class, 'updateCatalogMaterials']);
Route::get('/catalog-groups', [CatalogController::class, 'getCatalogGroups']);
Route::post('/store-catalog-groups', [CatalogController::class, 'storeCatalogGroups']);
Route::put('/update-catalog-groups/{id}', [CatalogController::class, 'updateCatalogGroups']);
Route::delete('/delete-catalog-groups/{id}', [CatalogController::class, 'destroyCatalogGroups']);
Route::get('/catalogs', [CatalogController::class, 'getCatalogs']);
Route::post('/store-catalogs', [CatalogController::class, 'storeCatalogs']);
Route::put('/update-catalogs/{id}', [CatalogController::class, 'updateCatalogs']);
Route::delete('/delete-catalogs/{id}', [CatalogController::class, 'destroyCatalogs']);
Route::get('/shop-costs', [CatalogController::class, 'getShopCosts']);
Route::post('/update-shop-costs', [CatalogController::class, 'updateShopCosts']);
// ConnectionController Routes...
Route::get('/connections', [ConnectionController::class, 'getConnections']);
Route::post('/store-connections', [ConnectionController::class, 'storeConnections']);
Route::put('/update-connections/{id}', [ConnectionController::class, 'updateConnections']);
Route::delete('/delete-connections/{id}', [ConnectionController::class, 'destroyConnections']);
Route::get('/connection-groups', [ConnectionController::class, 'getConnectionGroups']);
Route::post('/store-connection-groups', [ConnectionController::class, 'storeConnectionGroups']);
Route::put('/update-connection-groups/{id}', [ConnectionController::class, 'updateConnectionGroups']);
Route::delete('/delete-connection-groups/{id}', [ConnectionController::class, 'destroyConnectionGroups']);
Route::get('/connection-groups-with-types', [ConnectionController::class, 'getConnectionGroupsWithTypes']);
Route::post('/update-connection-types', [ConnectionController::class, 'updateConnectionTypes']);
Route::post('/upload-image', [ConnectionController::class, 'uploadimage']);
// BeamInventoryController Routes...
Route::resource('beam-inventory', BeamInventoryController::class);
Route::get('download-text', [BeamInventoryController::class, 'downloadText']);
// User Profile Routes
Route::get('/profile', [UserController::class, 'showProfile'])->name('user.profile');
Route::post('/change-password', [UserController::class, 'changePassword'])->name('user.password');
// Admin Routes
Route::prefix('admin')->namespace('Admin')->name('admin.')->group(function () {
Route::get('dashboard', [DashboardController::class, 'dashboard'])->name('dashboard');
// Organizations and Users routes
Route::group(['middleware' => 'super_admin'], function () {
Route::get('organizations', [UserController::class, 'getOrganizations'])->name('organizations');
Route::get('organizations/create', [UserController::class, 'showOrganizationCreate'])->name('organizations.create');
Route::post('organizations/create', [UserController::class, 'storeOrganizationCreate'])->name('organizations.create');
Route::get('organizations/{id}/edit', [UserController::class, 'showOrganizationEdit'])->name('organizations.edit');
Route::put('organizations/{id}/edit', [UserController::class, 'updateOrganizationEdit'])->name('organizations.update');
Route::delete('organizations/{id}/delete-data', [UserController::class, 'deleteOrganizationDataRequest'])->name('organizations.delete-data');
Route::delete('organizations/{id}/delete', [UserController::class, 'deleteOrganizationAndData'])->name('organizations.delete');
Route::put('organizations/{id}/restore', [UserController::class, 'restoreOrganizationAndData'])->name('organizations.restore');
});
Route::get('organizations/{id}/users', [UserController::class, 'getOrganizationUsers'])->name('organizations.users');
Route::get('organizations/{id}/users/create', [UserController::class, 'showOrganizationUserCreate'])->name('organizations.users.create');
Route::post('organizations/{id}/users/create', [UserController::class, 'storeOrganizationUserCreate'])->name('organizations.users.create');
Route::get('organizations/{id}/users/{userId}/edit', [UserController::class, 'showOrganizationUserEdit'])->name('organizations.users.edit');
Route::put('organizations/{id}/users/{userId}/edit', [UserController::class, 'updateOrganizationUserEdit'])->name('organizations.users.update');
Route::get('organizations/{id}/users/{userId}', [UserController::class, 'showOrganizationUserView'])->name('organizations.users.view');
Route::delete('organizations/{id}/users/{userId}/delete', [UserController::class, 'userDelete'])->name('organizations.users.delete');
Route::get('organizations/checkBeforeAddingDefaultData', [UserController::class, 'checkBeforeAddingDefaultData'])->name('organizations.checkBeforeAddingData');
});
谁能帮我解决这个问题吗?
我已经尝试过网上的建议,但没有任何效果
您将“Admin”命名空间设置为所有管理路由,但您的控制器不在“Admin”命名空间中,请从管理路由中删除命名空间('Admin')来解决此问题。
Route::prefix('admin')->name('admin.')->group(function () {
// .. routes
});