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

Laravel路由报错Class "App\Models\MenuList" not found如何解决

报错原因

触发Class "App\Models\MenuList" not found报错的核心原因是类名与文件名不匹配,不符合PSR-4自动加载规范:
Laravel 遵循 PSR-4 自动加载规则,App\Models 命名空间会直接映射到 app/Models/ 目录,加载类时会自动查找「和类名完全同名的.php文件」。你代码中定义的类名为MenuList,但存放该类的文件名为Listing.php,自动加载器无法定位到对应类文件,因此即使在路由中写了use引入语句,也无法正常加载类。

修复方案

二选一即可:

方案1(保留现有类名)

  • 将app/Models/目录下的Listing.php重命名为MenuList.php,确保文件名和文件内的类名完全一致(大小写严格匹配)。
  • 在项目根目录执行命令重建自动加载索引:
composer dump-autoload
  • 若之前开启过Laravel缓存,可额外执行清理命令避免缓存干扰:
php artisan optimize:clear

方案2(保留现有文件名)

  • 打开app/Models/Listing.php,将类名从MenuList修改为Listing:
<?php

namespace App\Models;

class Listing
{
    public static function all()
    {
        return [
            'id' => 1,
            'title' => 'liston one',
        ];
    }
}
  • 修改路由文件routes/web.php中的引入和调用语句:
<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Models\Listing;

Route::get('/', function () {
    return view('listings', [
        'heading' => 'lates listing',
        'listings'  => Listing::all()
    ]);
});
  • 同样执行composer dump-autoload和php artisan optimize:clear重建索引、清理缓存即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:09:21