不管我建立任何名字的controller都提示找不到,为什么啊
首页用运行
php artisan make:HomeController
然后修改routes\web.php
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', 'HomeController@index');
对应的app\Http\Controllers\HomeController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
public function index() {
return view('welcome');
}
}
报错
Illuminate\Contracts\Container\BindingResolutionException
Target class [HomeController] does not exist.
为什么啊,哪里错了呢
参考社区链接:
路由命名空间更新
laravel 7.x 以前的路由可以写成这样的形式:
Route::get('/', 'HomeController@index');
laravel 8.x 开始路由的默认写法是:

Route::get('/', [HomeController::class, 'index']);
在 laravel 8.x 里面如果想跟以前一样的路由写法,那就必须修改
Providers
文件夹下的RouteServiceProvider.php
里面的这段代码:protected $namespace = 'App\\Http\\Controllers';
,去掉前面的注释就行。如下图: