首頁 >後端開發 >php教程 >如何修復 Laravel 8 中的「目標類別控制器不存在」錯誤?

如何修復 Laravel 8 中的「目標類別控制器不存在」錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-19 19:29:12382瀏覽

How to Fix the

修正Laravel 8 中的「目標類控制器不存在」錯誤

使用Laravel 8 時,您可能會遇到以下錯誤:「目標類別[ApiRegisterController] 不存在。」這是由於Laravel 處理路由組中命名空間前綴的方式發生了變化。

在 Laravel 8 中,RouteServiceProvider 中的 $namespace 屬性(先前為控制器路由定義新增了前綴)現在設定為 null預設。這意味著在路由中引用控制器時必須使用完全限定的類別名稱。

要解決此問題,您有多種選擇:

使用完全限定的類別名稱:
在路由中使用控制器的完全限定類別名稱。例如:

Route::get('register', 'App\Http\Controllers\Api\RegisterController@register');

在路由組中定義命名空間前綴:
如果您喜歡舊方法,您可以在 RouteServiceProvider 中為路由組定義命名空間前綴。操作方法如下:

public function boot()
{
    ...

    Route::prefix('api')
        ->middleware('api')
        ->namespace('App\Http\Controllers')
        ->group(base_path('routes/api.php'));

    ...
}

設定$namespace 屬性:
雖然在某些資料中提到取消註解RouteServiceProvider 中的$namespace 屬性,但它只會影響URL產生actions 且不會自行將命名空間前綴新增至路由。

Laravel 更新8.0.2 及更高版本:
如果您從8.0.2 版本開始安裝了Laravel 8 的全新副本,則可以取消註釋RouteServiceProvider 中受保護的$namespace 成員變數以恢復到舊的行為。

記住,關鍵是為你的路由組定義一個命名空間前綴,根據你的喜好,你可以選擇上面提到的任何方法來修復Laravel 8 中出現“目標類控制器不存在”錯誤。

以上是如何修復 Laravel 8 中的「目標類別控制器不存在」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn