Laravel 8 - 目标类不存在

Laravel 8 - 目标类不存在 首页 / Laravel8入门教程 / Laravel 8 - 目标类不存在

当无涯教程在路由中调用控制器ProductController时,会发现以下问题: "Target class [ProductController] does not exist"

你也可以看到下面的截图。

实际上这不是错误,是因为laravel 8从RouteServiceProvider.php文件中删除了默认名称空间。

无涯教程可以在路由文件中指定,也可以在RouteServiceProvider.php文件中定义默认名称空间。一起来看看这两种解决方案。

解决方案1:在路由文件中使用

routes/web.php

<?php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\ProductController;

use App\Http\Controllers\PostController;

/*

|--------------------------------------------------------------------------

| Web Routes

|--------------------------------------------------------------------------

|

| Here is where you can register web routes for your application. These

| routes are loaded by the RouteServiceProvider within a group which

| contains the "web" middleware group. Now create something great!

|

*/

Route::get('/' function () {

return view('welcome');

});

Route::resource('products' ProductController::class);

Route::get('posts' [PostController::class 'index']);

解决方案2:在RouteserviceProvider 中定义

第二种解决方案是您可以将laravel定义为旧版本。所以将其定义为:app/Http/Providers/RouteServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Cache\RateLimiting\Limit;

use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\RateLimiter;

use Illuminate\Support\Facades\Route;

class RouteServiceProvider extends ServiceProvider

{

/**

* The path to the "home" route for your application.

*

* This is used by Laravel authentication to redirect users after login.

*

* @var string

*/

public const HOME = '/home';

protected $namespace = 'App\Http\Controllers';

/**

* Define your route model bindings, pattern filters, etc.

*

* @return void

*/

public function boot()

{

$this->configureRateLimiting();

$this->routes(function () {

Route::middleware('web')

->namespace($this->namespace)

->group(base_path('routes/web.php'));

Route::prefix('api')

->middleware('api')

->group(base_path('routes/api.php'));

});

}

....

routes/web.php    

<?php

use Illuminate\Support\Facades\Route;

/*

|--------------------------------------------------------------------------

| Web Routes

|--------------------------------------------------------------------------

|

| Here is where you can register web routes for your application. These

| routes are loaded by the RouteServiceProvider within a group which

| contains the "web" middleware group. Now create something great!

|

*/

Route::get('/' function () {

return view('welcome');

});

Route::resource('products' 'ProductController');

Route::get('posts' 'PostController@index');

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

AI技术内参 -〔洪亮劼〕

邱岳的产品实战 -〔邱岳〕

技术管理实战36讲 -〔刘建国〕

Flutter核心技术与实战 -〔陈航〕

编译原理之美 -〔宫文学〕

小马哥讲Spring核心编程思想 -〔小马哥〕

人人都能学会的编程入门课 -〔胡光〕

Vim 实用技巧必知必会 -〔吴咏炜〕

人人都用得上的数字化思维课 -〔付晓岩〕

好记忆不如烂笔头。留下您的足迹吧 :)