我在laravel 8中是新的,我添加了新的控制器并编辑了App\Http\Controllers\App\Http\Controllers\PostController,但是仍然有这样的错误:“目标类App\Http\Controllers\App\Http\Controllers\PostController不存在”
我是PostController.php
<?php
namespace app\Http\Controllers;
class PostController extends Controller
{
public function index()
{
return view('articles');
}
}
web.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\Controller\Controller’”
如果这里有人能向我解释问题在哪里,我会感激的。
发布于 2022-05-25 12:09:11
只需将此转换为以下代码
<?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 docs https://laravel.com/docs/8.x/routing
发布于 2022-05-25 12:12:45
这是因为默认名称空间已从laravel 8中删除。
/**
* 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 thishttps://stackoverflow.com/questions/72376967
复制相似问题