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

在Laravel中创建App/Models目录存放模型是否是良好开发实践?

关于Laravel模型迁移到App/Models目录的问题解答

首先明确结论:这是完全值得推荐的行业通用良好实践,不属于错误做法,也不会引发未知兼容问题

很多开发者有这个顾虑本质是混淆了「官方默认配置」和「官方推荐最佳实践」的区别:

Laravel的默认项目结构是面向极简入门场景设计的,对于只有2-3个模型的小型Demo或者微型项目来说,模型直接放在App/根目录确实更简单,减少新手的理解成本。但只要项目规模稍微扩大,模型数量超过5个之后,单独拆分App/Models目录就是几乎所有开发者的共同选择。

实际上从Laravel 8版本开始,官方新创建的项目已经默认自带App/Models目录,make:model生成命令也会默认把模型文件写到这个目录下,足以证明这个结构是官方认可的规范用法。

迁移的注意事项

只要做好以下几个调整,就不会出现任何问题:

  • 移动模型文件到app/Models目录后,修改每个模型的命名空间声明:把原来的namespace App;改为namespace App\Models;
  • 全局替换所有业务代码中对模型的引用,比如把use App\User;更新为use App\Models\User;
  • 修改关联配置文件的对应项:比如config/auth.php中用户提供器的模型配置,要改为App\Models\User::class
  • 迁移完成后执行composer dump-autoload刷新自动加载映射即可

为什么早期版本默认不采用这个结构

和Laravel最初的定位有关:早期Laravel主打快速开发、低门槛入门,默认结构做的尽可能精简,避免给新手带来「不必要的目录嵌套」的困惑。但随着Laravel生态逐渐成熟,面向中大型项目的使用场景越来越多,官方也在8版本之后将App/Models调整为默认结构,完全不存在「不规范」的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:54:04