不管我建立任何名字的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.

为什么啊,哪里错了呢

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

参考社区链接:
路由命名空间更新

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';,去掉前面的注释就行。
如下图:
file

4年前 评论
讨论数量: 3

用的8吗?推荐看下路由相关文档

4年前 评论
wongvio (楼主) 4年前

laravel8 RouteServiceProvider里面把 protected $namespace = 'App\\Http\\Controllers';的注释去掉

4年前 评论

参考社区链接:
路由命名空间更新

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';,去掉前面的注释就行。
如下图:
file

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!