خطای Target class does not exist در لاراول 8

سلام، وقتی من یک کنترلر در لاراول با دستور php artisan make:controller PostController ایجاد می کنم با خطای زیر رو به رو می شوم. لطفا راهنمایی کنید که چطور این خطا را برطرف کنم؟

Target class [PostController] does not exist.

 

برچسب ها:
پرسیده شده در: 4 سال قبل
آمار بازدید: 4178
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو دارای سوال با ۱۰ رأی دارای سوال با ۱۰ رأی
4

سلام، شما از لاراول ۸ استفاده می کنید و باید دقت داشته باشید که در این نسخه namespace ها و پسوندهای آنها به صورت پیشفرض تعریف نشده اند و دلیل خطای شما هم همین موضوع است. در نسخه های قبلی در RouteServiceProvider یک متغییر به نام namespace وجود داشت که به صورت خودکار پس از نصب لاراول مسیردهی کنترلرها و Route ها را انجام میداد و این اتفاق در نسخه ۸ به بعد رخ نمی دهد. پس برای حل این مشکل چندین راه حل وجود دارد:

۱) تعریف namespace در RouteServiceProvider (پشنهاد من)

ابتدا به مسیر App\Providers\RouteServiceProvider رفته و سپس خط زیر را تابع boot اضافه کنید:

//ابتدا خط زیر را در این فایل از حالت کامنت خارج کنید
 protected $namespace = 'App\\Http\\Controllers';


public function boot()
{
    $this->configureRateLimiting();

    $this->routes(function () {
        Route::prefix('api')
            ->middleware('api')
            ->namespace($this->namespace)// این خط را اضافه کنید
            ->group(base_path('routes/api.php'));

        Route::middleware('web')
            ->namespace($this->namespace)// این خط را اضافه کنید
            ->group(base_path('routes/web.php'));
    });
}

این کار را می توانید برای تک به تک مسیردهی ها (مثلا web یا api انجام دهید)

۲) افزودن namespace به فایل route لاراول

به هنگام تعریف یک مسیر در فایل های web.php یا api.php و ... می توانید مسیر کنترلرها را مشخص کنید:

use App\Http\Controllers\UserController; // این خط مسیر کنترلر را مشخص می کند

Route::get('/users', [UserController::class, 'index']);
// or
Route::get('/users', 'App\Http\Controllers\UserController@index');

 

ارسال شده در: 4 سال قبل
masoudsalehi (1725)
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو دارای 1000 کارما دارای 1000 کارما نظرات دریافتی:‌ بیش از 50 نظرات دریافتی:‌ بیش از 50 دارای 25 پاسخ صحیح دارای 25 پاسخ صحیح ارسال کننده پاسخ با 25 رای ارسال کننده پاسخ با 25 رای
1
استاد آپدیت لاراول هشت رو منتشر نمیکنید برای دوره ی لاراول ؟ - amiram234567 در 4 سال قبل
@amiram234567 در حال دیزاین و کدنویسی مجدد یک سری بخش ها هستیم به محض اتمام، دوره جدیدی برای لاراول ۸ درنظر میگیریم. - masoudsalehi در 4 سال قبل
جهت ارسال پاسخ ابتدا عضو سایت شوید.