[英]Class App\Http\Controllers\PostController does not exist
[英]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.