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


Move Laravel 5 Eloquent models into its own directory

Laravel 5 默认在应用程序文件夹中具有 ORM 模型。我想将它们移动到应用程序/模型中。当我这样做时,这些类就再也找不到了。

如何让拉拉维尔从应用程序/模型中找到雄辩的ORM模型?

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. 恭喜!

只需创建一个名为 Models 的文件夹,然后将文件移动到其中即可。之后,将模型的命名空间从仅 App 更改为 App'Models(也更新用法)并运行 composer dump-autoload

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

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

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

composer dump-autoload

这对我有用。:)

在完成@Saint播放步骤后。我必须做php artisan config:clear.然后它奏效了!