目标类 [App\Http\Controllers\Admin\Category\CategoryController] 不存在

0 php laravel laravel-8

我对这里如何使用命名空间和使用来引用我的CategoryController. 我正在使用 laravel 8。任何指导将不胜感激!

在此输入图像描述

我的路线使用资源,这似乎没问题。网页.php:

namespace App\Http\Controllers\Admin\Category;
Route::get('/admin/categories', [CategoryController::class, 'category'])->name('categories');
Run Code Online (Sandbox Code Playgroud)

我的类别控制器App\Http\Controllers\Admin\Category\CategoryController.php如下所示是我的文件夹结构:

在此输入图像描述

类别控制器.php:

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class CategoryController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth:admin');
    }

    public function category(){
        echo "Hello Category";
    }

}
Run Code Online (Sandbox Code Playgroud)

Unf*_*lux 5

namespaces应该模仿你的目录结构。因此,如果您有一个CategoryController.php文件驻留在该文件夹中app/Http/Controllers/Admin/Category,那么namespace该文件的 将为namespace App\Http\Controllers\Admin\Category;

namespace App\Http\Controllers\Admin\Category;

use App\Http\Controllers\Controller;

class CategoryController extends Controller
{
    // stuff
}
Run Code Online (Sandbox Code Playgroud)

namespace引用类时,您可以在声明中包含相关内容use

因此,在您的web.php文件中您要替换:

namespace App\Http\Controllers\Admin\Category;
Run Code Online (Sandbox Code Playgroud)

和:

use App\Http\Controllers\Admin\Category\CategoryController;
Run Code Online (Sandbox Code Playgroud)