将 Laravel 5 Eloquent 个模型移动到它自己的目录中

Move Laravel 5 Eloquent models into its own directory

Laravel 5 默认情况下在 app 文件夹中有 ORM 模型。我想将这些移动到 app/models。当我这样做时,这些 类 就再也找不到了。

如何让 Laravel 从 app/models 中找到 Eloquent ORM 模型?

"app/models" 添加到 composer.json 的类映射自动加载部分

"autoload": {
    "classmap": [
        "database",
        "app/models"
    ]
}

只需创建一个名为 Models 的文件夹,然后将您的文件移入其中。之后,将模型的命名空间从 App 更改为 App\Models(同时更新用法)和 运行 composer dump-autoload.

Laravel 5.6+

的解决方案

1。将文件移动到新目录

假设您要将模型移动到 app/Models

2。更改模型的命名空间

对于每个模型更改:

namespace App;

namespace App\Models;

3。更改其他文件中的引用

检查这些文件并特别搜索 app\User

  • app/Http/Controllers/Auth/RegisterController.php
  • config/auth.php
  • config/services.php
  • database/factories/ModelFactory.php
  • database/factories/UserFactory.php
  • 你的控制器

并将App/ModelExample更改为App/Models/ModelExample

4。自动加载文件

运行 composer dump-autoload

5。恭喜!

Afer 移动模型文件夹中的所有文件。你需要做的是 运行:

composer dump-autoload

这对我有用。 :)

完成@Saint Play 步骤后。我必须做 php artisan config:clear。然后成功了!