我对这里如何使用命名空间和使用来引用我的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)
你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)