Laravel将模型移入models目录修改引用路径后报错如何解决
Laravel 模型迁移到Models目录报错完整解决方案
- 第一步:修正所有模型自身的命名空间
所有移入app/Models目录的模型,需要将头部的命名空间声明从
修改为namespace App;namespace App\Models; - 第二步:全局替换模型引用路径
- 所有控制器、中间件、表单请求类头部的
use引用,将use App\XXX;同步修改为use App\Models\XXX; - 模型之间的关联定义(
hasMany/belongsTo/morphTo等方法内的模型类参数)需要同步修改为对应App\Models命名空间下的类名 - 工厂类、数据播种(Seeder)文件内的模型引用同步修改
- 所有控制器、中间件、表单请求类头部的
- 第三步:修改认证系统默认配置
打开config/auth.php,找到providers.users.model配置项,将默认的App\User::class修改为App\Models\User::class,避免登录、注册等认证相关功能报错 - 第四步:清理缓存避免配置残留
依次执行以下命令清理缓存:composer dump-autoload php artisan config:clear php artisan cache:clear
注意:Linux环境下需确保Models目录名、模型文件名的大小写与命名空间、类名完全一致,大小写不匹配也会触发类找不到报错
内容的提问来源于stack exchange,提问作者ashura
相关产品推荐
相关产品推荐

