繁体   English   中英

Laravel 8 错误:目标类 [App\Http\Controllers\App\Http\Controllers\PostController] 不存在

[英]Laravel 8 ERROR :Target class [App\Http\Controllers\App\Http\Controllers\PostController] does not exist

我是 laravel 8 的新手,我添加了新的 Controller 并编辑了 web.php 但仍然有这个错误:'目标类 [App\Http\Controllers\App\Http\Controllers\PostController] 不存在'

这是 PostController.php

 <?php namespace app\Http\Controllers; class PostController extends Controller { public function index() { return view('articles'); } }

网页.php

 <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\PostController; Route::get('/','App\Http\Controllers\PostController@index' );

我还通过添加命名空间尝试了其他解决方案但不起作用

 $namespace = 'App\Http\Controllers';

它给了我这个错误:“找不到类'app\Http\Controllers\Controller'”

如果这里有人可以向我解释问题出在哪里,我将不胜感激

只需将其转换为此代码

 <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\PostController; Route::get('/','App\Http\Controllers\PostController@index' );

通过这个:

enter code here

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PostController;

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

错误是您编写了 laravel 7、6 等代码,因此 laravel 8 中的新路由是这样的 [NameOfController::class,'name_of_method'] ,您可以查看 laravel 8 文档https://laravel. com/docs/8.x/routing

这是发生的,因为默认命名空间已从 laravel 8 中删除。您应该通过取消注释行从您的 RouteServiceProvider 启用,如下所示

 /**
     * 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 = '/backend/dashboard';

    /**
     * The controller namespace for the application.
     *
     * When present, controller route declarations will automatically be prefixed with this namespace.
     *
     * @var string|null
     */
    protected $namespace = 'App\\Http\\Controllers'; //uncomment this

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM