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');

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

技术教程推荐

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

趣谈Linux操作系统 -〔刘超〕

NLP实战高手课 -〔王然〕

视觉笔记入门课 -〔高伟〕

Spark核心原理与实战 -〔王磊〕

体验设计案例课 -〔炒炒〕

恋爱必修课 -〔李一帆〕

超级访谈:对话玉伯 -〔玉伯〕

B端体验设计入门课 -〔林远宏(汤圆)〕

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