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

为什么啊,哪里错了呢

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

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

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

3年前 评论
讨论数量: 3

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

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

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

3年前 评论

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

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

3年前 评论

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