簡體   English   中英

Laravel 8:目標 class 不存在 ERROR

[英]Laravel 8: Target class does not exist ERROR

我有兩個ArticleController ,其中一個放在控制器內的Admin目錄中:

use App\Http\Controllers\Admin\ArticleController as ArticleADMController;
use App\Http\Controllers\ArticleController;

Route::get('/articles/{articleSlug}' , [ArticleController::class, 'single']);
Route::prefix('admin')->namespace('Admin')->group(function() {
    Route::resource('articles' , ArticleADMController::class)->except(['show']);
});

現在每當我想 go 到/admin/articles時,我都會收到這條消息:

Illuminate\Contracts\Container\BindingResolutionException 目標 class [Admin\App\Http\Controllers\Admin\ArticleController] 不存在。

但是,它確實存在於此圖片中:

捕獲

那么這里出了什么問題? 我該如何解決這個問題?

如果你知道,請幫助我解決這個問題,我非常感謝你們的任何想法或建議......

提前致謝。

從您的路線中刪除命名空間('Admin')。 您正在為 Admin/ArticleController 添加前綴。 由於您已經使用了命名空間路徑,因此您無需在路由組中單獨添加任何命名空間。

如果仍然無法解決問題,請在您的 Admin\ArticleController 中共享命名空間聲明。

對於管理員路徑:您已經指定 controller 來自管理員路徑,試試這個。

對於文章路由:刪除了“使用”並將完整路徑直接包含在“文章”路由的路徑中。

Route::get('/articles/{articleSlug}' , [App\Http\Controllers\ArticleController::class, 'single']);
Route::prefix('admin')->namespace('Admin')->group(function() {
    Route::resource('articles' , ArticleController::class)->except(['show']);
});

對於 Laravel 9,在這種情況下,這是我遇到類似問題時的解決方案

我發現我的問題是由這條線引起的Route::resource('/blog', 'BlogController', ['except' => ['show']]); 在我的 web.php 文件中

最初我的資源被注冊為Route::resource('/blog', 'BlogController', ['except' => ['show']]);

我繼續將其重構為Route::resource('/blog', 'App\Http\Controllers\BlogController', ['except' => ['show']]);

然后php artisan route:clearphp artisan optimize然后php artisan route:list

這應該可以解決問題,如果您正在使用resources並且還看到您已經在 web.php 文件的頂部擁有 Controller 的命名空間,但仍然面臨問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM