You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9报错:Class 'app\Http\Controllers\Controller' 找不到

Laravel 9 注册时「Class 'app\Http\Controllers\Controller' not found」错误修复方案

核心问题:命名空间大小写不匹配

Laravel 遵循 PSR-4 自动加载规范,根命名空间为大写的App,而非小写app,这是导致类找不到的直接原因。

1. 修正控制器的命名空间与模型引用

将控制器开头的命名空间和模型引入改为大写App:

<?php

namespace App\Http\Controllers; // 从小写app改为大写App
use App\Models\User; // 同样从小写app改为大写App
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use RealRashid\SweetAlert\Facades\Alert;

class UserController extends Controller
{
    // 其余代码保持不变
}

2. 确认基础Controller类存在

确保项目中app/Http/Controllers/Controller.php文件存在,这是所有自定义控制器的父类。如果缺失,创建该文件并写入默认内容:

<?php

namespace App\Http\Controllers;

use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}

3. 优化控制器冗余代码(可选)

你的store方法存在两处冗余,可同步优化:

  • 避免覆盖原始Request对象
  • User::create()已自动完成数据入库,无需重复调用$user->save()

优化后的store方法:

public function store(Request $request) {
    $data = $request->all();
    $data['password'] = Hash::make($data['password']);

    $user = User::create($data);
    
    if ($user) {
        Alert::success('Success', 'anda berhasil mendaftar');
        return redirect('/login');
    } else {
        Alert::error('Failed', 'gagal meregristrasi');
        return back();
    }
}

4. 确认路由的控制器引用

确保路由文件(routes/web.php)顶部正确引入控制器:

use App\Http\Controllers\UserController;

完成以上步骤后,清除缓存并重新测试注册流程:

php artisan optimize:clear

内容的提问来源于stack exchange,提问作者shandy pet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:42:41