【问题标题】:Error with mapping out routes to controller classes in Laravel在 Laravel 中将路由映射到控制器类时出错
【发布时间】:2022-11-15 15:34:20
【问题描述】:

尝试在 Laravel 中定义到控制器类的路由时遇到问题。

我的 web.php 路线如下所示:

use App\Http\Controllers\Frontend\ArticlesController as FrontEndArticlesController;
Route::get('/articles/{article:slug}', [FrontendArticlesController::class, 'show']);

控制器如下所示:

namespace App\Http\Controllers;
use App\Models\Article;
use Illuminate\Http\Request;
use Inertia\Inertia;

class ArticlesController extends Controller
{
    public function index() {
        $articles = Article::orderBy('created_at', 'desc')->paginate(5);
        return Inertia::render('Article/Index', compact('articles'));
    }

    public function show($slug)
    {
        $article = Article::where('slug', $slug)->firstOrFail();
        return Inertia::render('Article/Show', compact('article'));
    }

}

无论我做什么,我都会不断收到以下错误,请帮忙。

Cannot declare class App\Http\Controllers\ArticlesController, because the name is already in use

【问题讨论】:

  • 希望只是我忽略了一些简单的事情......

标签: php laravel class controller


【解决方案1】:

您的班级名称已在任何地方使用,您只能使用名称 AppHttpControllersArticlesController 班级一次。第二个原因-也许您的类加载器/阅读器(作曲家)将其保存在草稿/缓存中。尝试这个:

composer clear-cache

composer dump-autoload

此外,您应该阅读有关自动加载的信息:https://www.php.net/manual/en/language.oop5.autoload.php

【讨论】:

    【解决方案2】:

    更改控制器中的名称空间;

    namespace AppHttpControllersFrontend;
    

    并使用:

    use AppHttpControllersController;
    

    【讨论】:

    • 并使用use AppHttpControllersController;
    猜你喜欢
    • 2016-06-18
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 2018-08-06
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多